Как стать автором
Обновить
2
0
Станислав Гордиенко @stagor

Пользователь

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

Python-неизвестный

Время на прочтение4 мин
Количество просмотров27K
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →
Всего голосов 144: ↑140 и ↓4+136
Комментарии51

Создание оригинальной каптчи, используя нейронные сети. Часть 1

Время на прочтение9 мин
Количество просмотров2.8K
Как и у всех программистов, недавно у меня возникло желание изобрести собственный “велосипед”. Так как изобретать свою CMS, Framework, и т.д. уже не актуально, то мой взор обратился на каптчу. Казалось бы, что тут можно придумать оригинального, каких только каптч не существует: 2D-картинка, 3D-картинка, звуковая каптча, выбор “правильной” картинки. Но мне пришла в голову мысль, что создатели каптч думают как-то однобоко, то есть все хотят получить однозначно правильный ответ от пользователя (и обычно в тестовом поле), причем в простом виде, серверу лишь остается сравнить ответ с исходными данными! Вот я и решил исправить это дело и создать собственную “умную” каптчу.

Читать дальше →
Всего голосов 68: ↑43 и ↓25+18
Комментарии73

Работа с Java в командной строке

Время на прочтение11 мин
Количество просмотров649K
Сейчас уже никто не создает программы в консоли. Используя любимую IDE, разработчик чувствует себя неуютно за чужим компьютером, где её нет.
Решив разобраться в работе Ant и Maven, я поймал себя на том, что не смогу собрать приложение без них в консоли.
В данной статье я постарался уместить все этапы проектирования демонстрационного приложения, чтобы не искать справку по каждой команде на просторах Интернета.
Читать дальше →
Всего голосов 75: ↑71 и ↓4+67
Комментарии25

3 причины того, почему неудача является ключом к успеху

Время на прочтение3 мин
Количество просмотров52K
В поиске информации по саморазвитию нашел интересную статью с необычным названием. Прочитал и подумал, почему бы не поделиться с коллегами-хабровчанами, возможно информация их заинтересует. Итак, мой вольный перевод, поехали.

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

Обратите внимание на эту информацию, особенно если вы в таком положении, когда неудача ваш противник, и в каждом поражении вы найдете новую возможность. Вот три причины, почему неудача является ключом к успеху.
Читать дальше →
Всего голосов 59: ↑48 и ↓11+37
Комментарии33

Избегаем распространенных ошибок в HTML5 разметке

Время на прочтение8 мин
Количество просмотров120K
HTML5 Уважаемые хабровчане, представляю вам вольный перевод статьи Avoiding common HTML5 mistakes. Здесь мы рассмотрим частые ошибки в HTML5 разметке с точки зрения семантики, и как их избежать.
Читать дальше →
Всего голосов 145: ↑132 и ↓13+119
Комментарии92

Objective-C с нуля

Время на прочтение23 мин
Количество просмотров437K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →
Всего голосов 163: ↑155 и ↓8+147
Комментарии61

Objective-C: взгляд рубиста

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

Intro


До начала изучения 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.
Читать дальше →
Всего голосов 75: ↑59 и ↓16+43
Комментарии103

Эксперименты над людьми? Почему бы и нет

Время на прочтение1 мин
Количество просмотров33K
Представьте себе, что вы ищете порно (тут даже фантазии я бы сказал иметь не надо). Но порно не простое, а особенное – зоо, гей, карлики и т.д. И тут БАЦ! Вместо попапа с порнушкой выскакивает вот такой вот сайт:

http://www.this-dude-is-watching-porn.com/


Читать дальше →
Всего голосов 85: ↑62 и ↓23+39
Комментарии40

Оценка сложности задач

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

Оценка задач


При оценке сложности задач очень часто сложно выдать абсолютную оценку. Гораздо легче оценить относительный размер двух задач, т.е., например, сказать, что задача А в два раза больше задачи Б.
При agile-процессе разработки приходится оценивать много пользовательских историй.
Используя попарное сравнение снижается погрешность в определении оценок, и более того, эту погрешность можно вычислить.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии18

TameJS — приручаем асинхронное программирование

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

Что такое TameJS ?


TameJS — это расширение Javascript, которое делает событийное/асинхронное программирование более простым и элегантным. Его очень просто использовать с nodejs или другими v8-проектами.
Читать дальше →
Всего голосов 94: ↑84 и ↓10+74
Комментарии32

Настраиваем окружение на Mac OS и собираем автономное приложение с PySide/PyQt

Время на прочтение5 мин
Количество просмотров27K
image
Сейчас все удобнее становится использовать HTML и JavaScript в интерфейсах приложений. И именно такая задача недавно появилась передо мной, с одним важным условием — на выходе должно быть полностью standalone приложение, не требующее установки дополнительных библиотек и способное запуститься в обычном пользовательском окружения.

В силу своего природного обаяния в качестве основного языка был выбран Python + PySide c WebKit на борту, для сборки app-бандла использовался py2app.

Проблемы появились, при первой же попытке запустить приложение на чистой системе — обнаружилось большое количество внешних зависимостей, которые py2app не смог самостоятельно разрешить. Под катом пошаговая инструкция как эта проблема была решена.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии18

Прозрачное кэширование в nginx для всех и каждого

Время на прочтение2 мин
Количество просмотров115K
Представим, что у нас есть сайт, на который регулярно дают ссылки с хабра.
Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?

С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.

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

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

Ускорение кода на Python средствами самого языка

Время на прочтение5 мин
Количество просмотров81K
Каким бы хорошим не был Python, есть у него проблема известная все разработчикам — скорость. На эту тему было написано множество статей, в том числе и на Хабре.

Что с этим можно сделать?
Всего голосов 98: ↑86 и ↓12+74
Комментарии46

Домашняя автоматизация

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

Итак имеем:
Роутер dir-320( с dd-wrt, процесс установки описан на нашем личном блоге, если нужно статью дополню ссылками на блог), контроллер ATmega8535, небольшая схема управления на оптодрайвере, обьект управления ( настольная лампа, усилитель звуковой, домашний водонагреватель ), немного проводов, паяльник, свободное время.
Что хотелось бы получить: программное управление питанием обьектов, питающихся от сети ~220 В.

На Хабре был целый цикл статей про «как включать настольную лампу от LPT» и прочее… НО! Здесь предлагается более-менее продвинутая, безопасная и автономная система по управлению.

Для небезлимитов — под катом картинки.
Читать дальше →
Всего голосов 78: ↑76 и ↓2+74
Комментарии78

Асинхронные задания в Django c помощью Celery

Время на прочтение5 мин
Количество просмотров65K
Приветствую!
Думаю, большинство разработчиков Django слышали о Celery — системе асинхронного выполнения заданий, а многие даже активно её используют.

Около года назад на хабре была довольная хорошая статья, рассказывающая о том, как использовать Celery. Однако, как было упомянуто в заключении, уже вышла Сelery 2.0 (на данный момент стабильной версией является 2.2.7), где интеграция с django была вынесена в отдельный пакет, а также произошли другие изменения.

Данная статья будет полезна прежде всего новичкам, которые начинают работать с Django, и им требутся что-то, способное выполнять асинхронные и/или периодические задания в системе (например очистку устаревших сессий). Я покажу как установить и настроить Сelery для работы с Django от начала до конца, а также расскажу про некоторые другие полезные настройки и подводные камни.
Итак, приступим.
Всего голосов 56: ↑51 и ↓5+46
Комментарии64

Обзор свежих материалов, апрель-май 2011

Время на прочтение9 мин
Количество просмотров1.1K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-март 2011.


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

WaterSpout — веб сервер для асинхронной передачи данных

Время на прочтение1 мин
Количество просмотров1.8K
Сегодня речь пойдёт об WaterSpout — веб сервере, способном обрабатывать websockets запросы, позволяя общаться в реальном времени между сервером и браузером используя websockets или long polling. Написан он на PHP.

В первую очередь идёт проверка поддерживаются ли websockets (это Chrome, Опера и FF, если включим), если нет, то ничего страшного, будет использоваться long polling.
Преимущества этой технологии: доставка сообщений мгновенна, высокая производительность. Тестировал в Chrome, FF, IE6+.
Демка.
Читать дальше →
Всего голосов 61: ↑54 и ↓7+47
Комментарии41

Еще немного о дескрипторах в Python

Время на прочтение3 мин
Количество просмотров19K
Не так давно на Хабре уже был перевод статьи Раймонда Хеттингера Руководство к дескрипторам. В этой статье я постараюсь рассмотреть вопросы, которые возникли у меня после прочтения. Будет немного примеров кода, собственно вопросов и ответов к ним. Для понимания того, о чем речь, вам нужно знать, что такое дескрипторы и зачем они.

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии29

Видеоуроки по Python от Khan Academy

Время на прочтение1 мин
Количество просмотров14K
Некоммерческая организация Khan Academy начала публиковать микролекции по языку программирования Python для начинающих. Первый урок посвящён написанию простой программки вычисления факториала с использованием цикла.



P.S. Khan Academy специализируется на массовом образовании. С 2006 года её основатель Салман Хан записал более 2300 микролекций в области науки и математики. По данным на июнь 2011 года, у канала Khan Academy на YouTube зафиксировано около 64 млн просмотров.

Khan Academy на YouTube
Всего голосов 67: ↑63 и ↓4+59
Комментарии28

Что должен знать о времени каждый программист

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

Некоторые замечания о времени

  • UTC: время на нулевом меридиане называется Всемирное координированное время, Universal Coordinated Time. Несовпадение акронима было вызвано необходимостью универсальности его для всех языков.
  • GMT: ранее вместо UTC использовалось среднее время по Гринвичу (Greenwich Mean Time, GMT), так как нулевой меридиан был выбран так, чтобы проходить через Гринвичскую королевскую обсерваторию.
  • Прочие часовые пояса могут быть записаны как смещение от UTC. Например, Австралийское восточное стандартное время (EST) записывается как UTC+1000, то есть время 10:00 по UTC есть 20:00 по EST того же дня.
Читать дальше →
Всего голосов 250: ↑237 и ↓13+224
Комментарии100

Информация

В рейтинге
Не участвует
Откуда
Sydney, New South Wales, Австралия
Дата рождения
Зарегистрирован
Активность