• Программирование на Python — курс для желающих узнать о нём больше или изучить ещё один язык программирования

    • Tutorial
    "The joy of coding Python should be in seeing short, concise, readable classes that express a lot of action in a small amount of clear code — not in reams of trivial code that bores the reader to death."
    Guido van Rossum

    Python — язык программирования, на котором приятно писать и который приятно читать. Мы предлагаем тринадцать лекций осеннего курса CS центра, чтобы посмотреть вглубь языка и попробовать понять, как пользоваться всеми его возможностями. Лекции читает Сергей Лебедев, разработчик в компании JetBrains и преподаватель в Computer Science Center.

    Мало освоить синтаксис, чтобы узнать язык программирования: нужно осознать идиомы языка и научиться их применять. В течение курса Сергей знакомит слушателей с идиомами и возможностями языка Python.

    Фотография сделана осенью 2014 года в Страсбурге, за две недели до начала первого прочтения этого курса.
    Открыть лекции курса
  • Часть 2. Сколько мегабит/с можно пропустить через зрительный нерв и какое разрешение у сетчатки? Немного теории



      Другие публикации из этой серии


      Часть 1. Unboxing VisuMax — фемто-лазера для коррекции зрения
      Часть 3. Знакомьтесь — лазер по имени Amaris. Переезды и первое пробуждение VisuMax
      Часть 4.1 Возвращаем зрение. От очков до эксимерного лазера
      Часть 4.2 Возвращаем зрение. От очков до эксимерного лазера

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

      Я постараюсь рассмотреть человеческое зрение через призму IT. Если кому-то не слишком интересно читать часть, посвященную биологическим аспектам зрения — ничего страшного. Просто пропустите разделы, начиная с оптической системы глаза, и сразу переходите к традиционному конкурсу от наших девушек. Однако, я все же рекомендовал бы ознакомиться с этим материалом, чтобы лучше понять следующую статью, в которой мы будем рассматривать LASIK, Femto-LASIK, ReLEx SMILE и другие методы лазерной офтальмохирургии.

      Есть настроение разобраться, что именно говорят эти непонятные люди в белых халатах, задумчиво глядя на результаты вашего обследования? Вы хотите узнать немного нового об уникальном природном даре — зрении? Тогда добро пожаловать под habracut. Как обычно — много иллюстраций и трафика (≈5 MB).
      Читать дальше →
    • Обзор сервисов отсылки мобильных push-уведомлений

        Недавно заметил за собой, что получать уведомления из разных программ на email для меня стало неудобным. Уже давно устоялся термин “email overload” и компании вроде Google с этим стараются работать (вводят папки, фильтры, а теперь и вкладки в Gmail).

        Мне понравилась концепция центра уведомлений, которая успешно показала себя на ОС Android, появилась в iOS6 и запланирована к выпуску в Windows Phone. Это одна лента уведомлений для всех сервисов, удобный просмотр, работа с уведомлениями, простая очистка списка. На своем опыте убедился, что это в разы удобнее, чем привычные email уведомления, которые превращают inbox в кашу.

        Поскольку наша команда работает одновременно над несколькими проектами (где-то летят “билды”, где-то пушатся изменения и так далее), мне показалась интересной идея подключить свои проекты к такому варианту уведомлений о событиях, происходящих в системе. В идеале я хотел иметь возможность рассылать уведомления разным членам команды, а при необходимости и на всю команду целиком. Только мне хотелось получать их именно от ПО, с которым я работаю — начиная от инструментов Continuous Integration и автоматического тестирования, и заканчивая непосредственно логами ошибок, статистикой и критикалами из проектов.
        Читать дальше →
        • +16
        • 27,5k
        • 7
      • Краткая история освоения космоса



          За последние пол года на хабре появилось заметное количесво первоклассных постов о космосе, начал пожалуй Zelenyikot нашедший на марсе станцию Марс-3, продолжили Kamalesh, jeston, Sulentium и @DaryaZ. Некоторый итог подвелlozga, но мне кажется все эти посты несколько поверхностны и не отражают того уровня, который достигла наша космонавтика. По этому я собрался духом и написал очень длинный пост о подлинной истории освоения космоса — думаю приведенные мной факты позволят многим по-новому взглянуть на саму тему космоса. Писал сжато, по этому за пояснениями прошу в каменты.

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

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

          Но внутри этой волны, на борту «прогресса» всегда будет казаться будто мы ползем как черепахи. Положа руку на сердце – кто из нас считает СССР лучшим в мире государством всю свою историю делавшим невозможное?

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



          Читать дальше →
        • Кикстартер: за и против

          • Tutorial
          Сегодня мы поделимся советами по созданию проекта на краудфандинг площадке и опишем процесс на примере кикстартера, так как, к сожалению, он самый популярный и предъявляет наиболее жесткие требования — с остальными площадками проблем при публикации проекта у вас не возникнет.
          Читать дальше →
          • +9
          • 31,1k
          • 8
        • 12 сентября. Сан-Франциско. Центр искусств Йерба Буэна. Live-трансляции — чего изволите?



            Хабрачитатель! Это случится сегодня. В День Программиста.
            12 сентября 2012 года. В 21:00 по Москве. В 20:00 по Киеву.

            Продолжая эстафету анонсов live-трансляций — коротко и без хабраката — встречайте:

            Русскоязычные трансляции:





            Англоязычные трансляции:





            Читать дальше →
          • Баллада о Turbo Pascal или 20 лет без перемен

              Баллада о Turbo Pascal или 20 лет без перемен

                  Тихо и незаметно прошла первая неделя нового учебного года. Хоть я уже и давно закончил школу, а своих детей школьного возраста пока нет, я все равно волей-неволей задумываюсь о начале учебного года. И вызвано это отнюдь не засильем детей в школьной форме на улицах: я очень редко выхожу из дома.
                  Причина, из-за которой я вспоминаю, что началась осень довольно необычна — я замечаю на форуме моей локальной сети свежую тему, кочующую из года в год, всплывающую порой в самых неожиданных разделах этого форума. Если сформулировать эту тему, то получится всего 4 слова, отражающих всю безысходность ситуации с компьютерным образованием на просторах бывшего СССР, звучит она так: «Где взять Turbo Pascal?»
              Читать дальше →
            • Менталитет достаточности: в мире всего хватит на всех

                Приходилось ли вам когда-нибудь радоваться поражениям других людей?

                Не берусь говорить за всех, но уверен, что многие сталкивались с этим чувством, особенно в молодом возрасте. Думаю, многие согласятся с тем, что у них в голове хоть раз возникала мысль «Так ему и надо» в отношении другого человека, потерпевшего провал. Не так важно, кто это: конкурент или просто герой очередной публикации на страницах новостного портала. Факт в том, что мысль «Так ему и надо», которая на самом деле интерпретируется как «Я рад, что он потерпел неудачу», знакома многим людям, особенно в развивающихся странах.
                Читать дальше →
              • Как написать отличную статью и завоевать умы


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

                  В данной статье мне хотелось бы предложить несколько вариантов того, как стоит создавать статьи, как их подавать и как поддерживать жизнь своей статьи.
                  Читать дальше →
                • Django на production. uWSGI + nginx. Подробное руководство

                  • Перевод
                  • Tutorial
                  Перед вами руководство по настройке production окружения для Django. Здесь будут описаны необходимые шаги по настройке Django, uWSGI и nginx. Руководство охватывает все три компонента — полный стек серверного ПО для веб-приложений.

                  Подразумевается, что вы используете Unix-подобную операционную систему и менеджер пакетов, эквивалентный aptitude. Найти эквивалент aptitude почти для любой операционной системы, в том числе и для Mac OS X, для вас не составит никакого труда.

                  Руководство написно для версий Django 1.4 или выше. Если вы используете более раннюю версию, то вам придется самостоятельно найти wsgi модуль для нее. Также вы заметите, что файловая структура проекта будет немного отличаться от представленной здесь.

                  Общая идея


                  Веб-сервер может по запросу отдавать пользователям файлы из своей файловой системы, однако он не может напрямую работать с Djangо приложениями. Веб-серверу нужен интерфейс, который будет запускать Django приложение, передавать ему запрос от пользователя и возвращать ответ.

                  Для выполнения этих задач был разработан Web Server Gateway Interface — WSGI — стандарт взаимодействия Python программ и веб-сервра.

                  uWSGI — одна из реализаций WSGI. В этом руководстве мы установим и настроим uWSGI для создания Unix сокета и взаимодействия с веб-сервером по протоколу WSGI.
                  Читать дальше →
                • PrettyTasks Widget под Android с поддержкой оффлайн работы

                    Вышел Android виджет с поддержкой оффлайн работы для сервиса PrettyTasks.
                    Основной функционал виджета включает наиболее важные функции работы с задачами на текущий день.



                    Узнать как повысить свою продуктивность
                  • Продажа приложений в Google Play из Украины

                      Пока программисты (и не только) постсоветсткого пространства празднуют майские праздники Google без особой шумихи подключили возможность продавать приложения в Google Play в следующих странах: Греция, Люксембург, Румыния, Саудовская Аравия, Словакия, Турция, Украина, Вьетнам. Ура, товарищи!


                      Читать дальше →
                    • Триггеры в MySQL

                        Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).
                        Поддержка триггеров в MySQL началась с версии 5.0.2
                        Читать дальше →
                      • Горизонтальное масштабирование PHP приложений. Часть 1

                        • Перевод

                        Итак вы сделали сайт. Всегда интересно и волнительно наблюдать как счетчик посещений медленно, но верно ползет вверх, с каждым днем показывая все лучшие результаты. Но однажды, когда вы этого не ждете, кто-то запостит ссылку на ваш ресурс на каком-нибудь Reddit или Hacker News (или на Хабре — прим. пер.), и ваш сервер ляжет.

                        Вместо того, что бы получить новых постоянных пользователей, вы останетесь с пустой страницей. В этот момент, ничего не поможет вам восстановить работоспособность сервера, и трафик будет утерян навсегда. Как же избежать таких проблем? В этой статье мы поговорим об оптимизации и масштабировании.
                        Читать дальше →
                      • Легализация дохода фрилансера в Украине. Часть 1: государственная регистрация бизнеса

                        • Tutorial
                        Рано или поздно любой фрилансер задумывается о том, чтобы перестать прятать свои доходы от государства. Преимущества очевидны: идет официальный стаж работы, в банке охотнее выдают кредиты, для получения туристической визы заграницу не нужно искать обходные пути, спишь, в конце концов, спокойнее. Самый простой способ выйти из тени в Украине — стать предпринимателем или, как это официально называется, физическим лицом — предпринимателем.

                        Я работаю предпринимателем — фрилансером с 2007 года и успел накопить значительный опыт получения денег из-за рубежа как через онлайн-биржи вроде oDesk и Elance, так и работая с заказчиками напрямую. В свое время я был инициатором некоторых изменений на oDesk, помогающих упростить легальное получение денег на свой предпринимательский счет. Сегодня я руковожу разработкой в нашем украинском стартапе Taxer.ua, от чего опыта во взаимодействии с государством накопилось еще больше.

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

                        1. Государственная регистрация предпринимателя: выбор системы налогообложения, подача заявления.
                        2. Составление ВЭД договора, получение денег от клиентов: биржи oDesk, Elance и напрямую.
                        3. Ведение ВЭД бухгалтерии: акты, счета, книга доходов и курсовая разница.
                        4. Уплата налогов и отправка отчетности в контролирующие органы: сдавать ли валютную декларацию.

                        Читать дальше →
                      • Повышаем безопасность стека web-приложений (виртуализация LAMP, шаг 6/6)

                        • Перевод

                        Настройка и использование nginx

                        Мы завершаем перевод цикла статей сайта cyberciti.biz, посвященного виртуализации LAMP-стэка. Речь в заключительном материале пойдет об установке и настройке реверс-прокси nginx.

                        nginx — open-source продукт, использующийся не только в качестве веб-сервера или реверс-прокси сервер. За его легковесность и бережное отношение к ресурсам его используют и в качестве балансировщика нагрузки (от тупого round-ribbon, до более осмысленного, но тут все туманно прим.пер.) и/или в качестве прокси-решения для организации доступа к службам виртуальной сети, установленной в предыдущих статьях цикла, через один внешний хост-адреса, например через IP 202.54.1.1 (как это было рассмотренное в примерах прежде).
                        Читать дальше →
                        • +8
                        • 19,5k
                        • 5
                      • Миссия невыполнима. Мертворожденные проекты

                          «Когда человек не знает, к какой пристани он держит путь, для него ни один ветер не будет попутным». (С) Сенека, Луций Анней



                          Предисловие

                          Как-то один из топов уважаемой компании, которая занимается продуктовой разработкой ПО, пригласил меня, как эксперта, чтобы я оценил качество нового продукта. Я внимательно просмотрел и прослушал презентацию. Видно было, что коллеги очень старались и работали по 10-12 часов, чтобы продукт выглядел на высшем уровне. После чего меня спросили: «хороший получился продукт или нет?» Я поблагодарил за представленную презентацию, но попросил ответить на свой последний вопрос: «А какие процессы, и с какой целью вы собираетесь автоматизировать с помощью этого инструмента?» Вопрос почему-то вызвал замешательство у докладчиков. После небольшой паузы, топ, который, видимо, был идеологом нового продукта, ответил: «Был бы инструмент хороший, а какие процессы с его помощь автоматизировать мы найдем!» Мне пришлось сказать, что оценить продукт я не смогу. Не зная бизнес-целей, невозможно понять степень их достижения.

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

                          Для иллюстрации используем проект «Экспедиция за сокровищами Флинта»
                          Девять пунктов концепции проекта
                        • Изменение коммитов в Git

                            Это пост для тех, кто начинает работу с Git. Все, что здесь написано по частям можно найти в многочисленных простынях о Git на Хабре. Но я подумал, что неплохо было бы иметь отдельный предельно понятный топик, который бы гуглился по запросу «git изменение коммитов».
                            Читать дальше →
                          • PhpMyAdmin исполнилось 15 лет

                              Проект phpMyAdmin появился на свет 9 сентября 1998 года, когда Тобиас Ратшиллер (Ratschiller) выпустил версию 0.9.0. За прошедшие полтора десятилетия phpMyAdmin превратился в один из основных инструментов для администрирования MySQL и других MySQL-подобных баз данных, с гордостью пишут разработчики.

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

                              К созданию phpMyAdmin причастны 669 разработчиков, а основная группа разработчиков выросла с 1 до 9 человек.
                              Читать дальше →