Pull to refresh
0
0
Язовцев Сергей @nimbler

User

Send message

Be Pythonic

Reading time3 min
Views17K

От переводчика


Представляю вашему внимаю перевод статьи Shalabh Chaturvedi «Be Pythonic», рекомендованной в этом топике. Если мое начинание будет поддержано, планирую также перевести две остальные упомянутые там статьи этого автора.

Вступление


Эта статья предназначена для новичков в Python.

При переходе с одного языка на другой некоторые вещи для вас могут остаться неизвестными (см. Transfer of Learning). То, что вам известно о других языках, может быть не всегда полезным в Python. Эта статья содержит некоторые используемые в Python идиомы, которые мне особенно нравятся. Я надеюсь, читатели найдут их полезными для овладения языком.
Читать дальше →

Ох уж этот javascript

Reading time1 min
Views17K
Считаете себя гуру JS'а? Попробуйте предсказать результаты следующих операций:

Number.MIN_VALUE > 0; // true or false?

typeof null; // what type?
null === Object; // true or false?

// и самый сок

NaN === NaN; // true or false?

typeof NaN; // what type?


* This source code was highlighted with Source Code Highlighter.


Сомневаетесь? Тогда именно для вас Брайан Леру (Brian Leroux) создал WTFJS — сайт, содержащий коллекцию странностей JS. «JavaScript — это язык, который мы любим несмотря на все его ненавистные особенности».

Для нетерпеливых ответы под катом.

Подглядеть

Материалы продвинутого уровня по Питону

Reading time5 min
Views46K
PythonВ мире все примерно распределяется в соответствии с принципом Паретто. Меньшая часть — богатые, большая часть — бедные (читающий, ты входишь в золотой миллиард). Тоже касается и материалов о программировании. Порой очень сложно найти хоть что-нибудь не начального уровня.

После прочтения Dive into Python или подобной ей и ознакомления с документацией возникает вопрос, а что читать дальше? Можно обратиться к списку книг на python.org. Там есть раздел Advanced Books, но в нем всего лишь 6 книг (седьмая не выходила), и только одну я бы назвал по-настоящему стоящей.

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

Ниже собраны сложные материлы про Питон, его устройство и возможности. Все на английском (грех, не знать технический английский). Про Dive into Python я слукавил. Большинство приведенных материалов требуют хорошее знание Питона и наличие опыта программирования на нем.

Подробнее

Вращение географических карт при помощи CSS3 и jQuery

Reading time1 min
Views5.2K
Одна из тех штук, которые мне всегда хотелось проделывать с сетевыми географическими картами — это вращать их: я привык к этому с реальными, материальными картами. И так как материальные карты в наши дни становятся гораздо умнее (например, видели ли вы карту, способную к увеличению?), то настало время смочь делать это также и с сетевыми.

Хотя Google поддерживает поворот спутниковых и гибридных карт, основные ещё не могут поворачиваться. Вот почему я взял CSS3-преобразования (обёрнутые весьма полезным плагином jQuery), и вуаля! – вращение сделалося возможным:

[Вращайте географическую карту при помощи CSS3 и jQuery]

Читайте далее про реализацию и про некоторые нюансы, которые надобно пофиксить, в первоначальной блогозаписи о вращении географических карт.

Анатомия .click() или история одной проблемы

Reading time4 min
Views29K
Доброго времени суток, товарищи.

Столкнулся с одной проблемой в JQuery и теперь хочу выяснить: все как всегда (сам дурак и прощай остатки кармы) или все же это такая особенность JQuery?

Положим, есть следующий HTML-код:
<input id="dis" type="checkbox" /><br><input id="chb" type="checkbox" /><input id="txt" type="text" /><br><br>* This source code was highlighted with Source Code Highlighter.


Схема работы предельно простая: чекбокс #chb управляет активностью текстового поля #txt (когда checked — !disabled и наоборот), а чекбокс #dis отключает (disabled=«disabled») чекбокс #chb и переключает его состояние.

Вот примерный код:
$("#chb").click(function() {<br>    $("#txt").attr("disabled", ! this.checked);<br>});<br><br>$("#dis").click(function() {<br>    if ( $("#chb").attr("checked") )<br>    {<br>        $("#chb").click();<br>    }<br><br>    $("#chb").attr("disabled", this.checked); <br>});<br><br>* This source code was highlighted with Source Code Highlighter.


Казалось бы, ничего необычного?
Не все так просто

Использование picasaweb в качестве фотохостинга

Reading time5 min
Views6.7K
Нужно использовать много изображений на сайте? Не хочется забивать хостинг изображениями? Хочется уменьшить нагрузку на сервер?
Тогда можно использовать сервис от гугл picasaweb і Picasa API как хостинг для изображений

процесс загрузки фотографий на сервер
Читать дальше →

LINQ to Objects на примерах

Reading time4 min
Views48K
Казалось бы .NET Framework 3.5 и революционный LINQ в частности появился у разработчиков достаточно давно, но не все мои коллеги еще четко представляют, что это такое и с чем это «едят». Поэтому я решил написать эдакую вводную статью для C# программистов, чтобы на наглядных примерах показать, как LINQ позволяет экономить время на рутинных вещах, таких как сортировка, аггрегация, поиск и т.д.

Сначала давайте определимся, что речь пойдет о LINQ to Objects. LINQ to SQL, XML, Entities и т.д. в этой статье не рассматриваются, хотя я уверен, что бОльшая часть приведенных примеров будет работать и там. Помимо этого, начиная с Silverlight 2.0, LINQ to Objects доступен и там.
Читать дальше →

Числа Фибоначчи (этюд на C#)

Reading time2 min
Views48K
Наверное многим студентам приходилось изучать рекурсию на примере вычисления чисел Фибоначчи. Задачка это безусловно академическая, и рекурсию она иллюстрирует явно хуже чем вычисление, скажем, факториалов, но она интересна тем, что имеет много решений разной степени извращенности. В этом посте – небольшой этюд на эту тему.

Если интересно...

Уроки разработки 64-битных приложений на языке Си/Си++

Reading time2 min
Views7.1K
Мы регулярно пишем статьи посвященные разработке и тестированию 64-битных программ на языке Си/Си++. Каждая из статей представляет взгляд на задачу разработки 64-битных программ с разных точек зрения. Но существенная часть информации в них повторяется, так как необходимо знакомить читателя с проблематикой и вводить различные определения. Это, к сожалению, делает чтение подборки статей скучным занятием и соответственно не позволяет всесторонне изучить вопросы разработки 64-битных приложений.

Мы решили объединить все наши знания в единый труд, в котором будут рассмотрены сразу все вопросы, касающиеся 64-битного программирования. Для оформления в виде статьи материала оказалась слишком много и мы решили представить его в виде курса уроков.

Кратко опишу курс "Уроки разработки 64-битных приложений на языке Си/Си++" и приведу его содержание.
Читать дальше →

Эксперимент Дзен-ТВ

Reading time9 min
Views12K
Вступительное слово
Изначально я просто хотел сделать перевод статьи Бернарда Мак Грейна «The Zen TV Experiment», но в процессе я понял что текст, мягко говоря, нуждается в адаптации. В результате перевод соответствует оригиналу процентов на сорок.

В первой половине статьи делается попытка осознать процесс просмотра телевидения, а во второй – как именно сказывается массовое участие людей в этом ТВ-эксперименте.

Я не всегда согласен с выбранным тоном и даже некоторыми умозаключениями, но в целом нахожу статью крайне интересной. Ещё хочу отметить, что в статье приводится не одна а несколько интересных идей; некоторые из них не были для меня новыми, но статья помогла мне окончательно сформулировать мнение на этот счёт. Да, статья предполагает выполнение некоторого задания, думаю, хабраобщественность вполне может обойтись мыслительным экспериментом.

В общем, на этот раз я советую кофе, вас ждёт 10-15 минут довольно увлекательного чтения.
Читать дальше →

Таблица специальных символов онлайн — Charmap.ru

Reading time2 min
Views2.8K
Доброго всем. Находясь все выходные дома по причине простуды, решил посвятить свободное время созданию сервиса (или даже «микросервиса»), который в четырёх словах можно назвать «Таблица специальных символов онлайн».

Как правило, пользователи Windows обычно могут набрать команду Пуск→Выполнитьcharmap, и тогда перед ними появится окошко с таблицей символов. А набрав в строке браузера charmap.ru, появится таблица специальных символов — то есть тех символов, большинство из которых невозможно набрать на клавиатуре в стандартных раскладках.

Под катом небольшая техническая информация — тех.паспорт проекта, зарубежные аналоги, отличия от конкурентов.
Читать дальше →

Началась работа по созданию Firewall API для приложений

Reading time1 min
Views948
Вчера разработчики отписали, что приступили к реализации Issue 644. Уж не знаю, атаки ли из Китая повлияли, но приоритет ей выставлен в high, так что в ближайшем будущем этот функционал появится.

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

Так что помимо MapReduce и Cursors (из roadmap), в приложениях довольно скоро появится и поддержка Firewall, a также Full Text Search.

Диодная звезда на елку

Reading time1 min
Views6.1K
Доброго времени.

Хочу представить обществу свою демо разработку. Диодная звезда на елку, с эффектами. И так, как свободного времени всегда не хватает, я так и не успел доделать ее вовремя, то есть она попадет на елку только в следующем году. Это «специальная» звезда, на верхушку елки, выполнено в форме конуса. Для «эффектов» взял микроконтроллер attiny2313. Меньше слов, больше ....

Демонстрация «эффектов».

Читать дальше →

Google AppEngine с самого начала: Представление

Reading time5 min
Views1.5K
Четвертая часть статьи, и вероятно — не последняя. Напомню, что предыдущие три статьи (а так же все последующие) теперь можно будет увидеть по этому адресу — статей много и проставлять в них навигационные ссылки друг на друга мне надоело;-)

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

Представление


Как вы знаете, такие слова как MVC уже давно стали даже не модными, а прям-таки подразумевающимеся (другой вопрос что понимает их всяк по своему). Наш пример не стал исключением — и теперь нам нужно объединить достижения контроллера и модели воедино и показать их пользователю. В этом нам немало поможет тот факт, что GAE внутри использует Django, механизм шаблонов которого является одним из самых лучших среди тех, которые я знаю. Одним из самых интересных, на мой взгляд, свойств шаблонов Django является то, что они поддерживают наследование.

Действительно, зачастую дизайн двух функционально разных страниц веб-сайта отличается лишь незначительно и использует общие элементы — header, footer, меню и т.д. Обидно будет дублировать этот код — и в то же время, всяческие include-директивы это все-таки вчерашний день. В Django вы можете наследовать один шаблон от другого.

Рассмотрим наш базовый шаблон, который можно найти в дереве исходников как templates/basic.html. Поскольку HTML на Хабр красиво вставляться не желает (и никакой Хабраредактор с этим справится не может), а некрасиво его читать — голову сломать можно, посмотрите его уж в SVN по ссылке выше. Суть не в этом. Суть в том, что в каких-то местах мы объявляем «заглушки»:
  1. <div id='content'>
  2. {% block content %} {% endblock %}
  3. </div>

Читать дальше →

Google AppEngine с самого начала: Контроллер

Reading time4 min
Views4.3K
Мы двигаемся вперед со скоростью реактивного паравоза, и пока хабралюди читают и осмысливают первую и вторую части статьи, я со скоростью пулемета пишу продолжение. На этот раз речь пойдет о сердце любого веб-приложения —

Контроллер


Какое-то время назад мы уже определили несколько URL в app.yaml — пора разобраться, как заставить приложение правильно «реагировать» на них. Вот так выглядят наши маппинги:

# $Id: app.yaml 4 2010-01-25 12:14:48Z sigizmund $

application: helloworld
version: 1
runtime: python
api_version: 1

handlers:
- url: /(stats|login)
  script: main.py
  login: required

- url: .*
  script: main.py


Как мы видим, определены три типа URL — /stats, /login и «всё остальное». Все три, что характерно, будут обработаны одним и тем же скриптом main.py, однако настройки отличаются — /stats и /login требуют наличия активной пользовательской сессии, в то время как для остальных это не обязательно. Давайте рассмотрим содержимое скрипта main.py:
Читать дальше →

Google AppEngine с самого начала: Модель

Reading time4 min
Views6.5K
В предыдущей статье мы выяснили, что такое Google AppEngine, что с ним можно делать, и создали самое простое и примитивное приложение для GAE — helloworld с минимальной поддержкой аутентификации пользователей. Попробуем расширить это приложение, рассмотрев, попутно, возможности Google AppEngine.

Структура и архитектура


Наше предыдущее приложение было предельно простым, и, как таковое, ни в какой архитектуре не нуждалось. Теперь мы ставим перед собой более сложную и более реальную задачу — соответственно, нам следует подумать о том, что будет, когда приложение начнет расти. Разумеется, наша задача выдумана и для нее никакой архитектуры тоже не требуется, но для примера попробуем все сделать «по науке».

Читать дальше →

Разработка для Google AppEngine: с самого начала

Reading time5 min
Views31K
Недавно я задал вопрос — было бы интересно хабралюдям почитать о том, как писать под Google AppEngine? Хабралюди сказали что да, интересно — ну я и решил начать. В этой статье мы рассмотрим следующие вопросы:
  1. Ультра-краткое введение в Google AppEngine (GAE), что это такое и с чем его едят
  2. Возможности и ограничения GAE
  3. Супер-краткий обзор архитектуры GAE-приложения
  4. Разработка минимального приложения с аутентификацией
  5. Разработка более сложного, реального приложения на основе MyTwiLinks
Начнем с самого начала, с самого простого — совсем для нубов (каковым я и являлся, когда начал разбираться с GAE), постепенно продвигаясь к более сложным концепциям, заканчивая грязными хаками на тему «как быть, если нельзя, но очень надо» (почти наверняка не успеем в рамках этого поста, но доберемся обязательно).

Читать дальше →

Страничка для счастливых обладателей IE6

Reading time1 min
Views6.1K
Наконец-то и я решился… Все новые проекты отныне будут иметь спец-страницу для Internet Explorer 6.

Изучив аналогичные решения в Интернете, решил создать свою страничку. Русский текст наскреб понемногу с разных проектов и отредактировал на свой вкус. Дизайн осознанно и намерено использовал майкрософтовский, чтобы хоть как-то повысить планку доверия для тех несчастных, что до сих пор сидят на IE6. Надеюсь, меня за это не осудят, тем более сделано это исключительно для многострадальных клиентов Майкрософта.
Читать дальше →

Создаем объёмный блок с тенью средствами CSS3

Reading time3 min
Views14K
День, когда стандарт CSS3 будет официально утвержден, а все популярные браузеры начнут его отображать приблизит нас, верстальщиков, к нашему же «раю верстальщиков» в несколько раз. Пока же заглянем в будущее и узнаем, как можно создать псевдо-3D блок используя только css и html.
показывай, кудесник

Information

Rating
Does not participate
Location
Владимир, Владимирская обл., Россия
Date of birth
Registered
Activity