Pull to refresh
1
0
Александр @Funcraft

User

Send message

Создаем новогоднюю открытку при помощи CSS3

Reading time4 min
Views13K


Всё ближе долгожданные новогодние и рождественские праздники и самое время подготовить подарки и поздравления. А как известно, самый лучший подарок — это подарок сделанный своими руками. :) Поэтому сегодня мы создадим новогоднюю анимированную открытку при помощи CSS3. Создание такой открытки займет у вас всего лишь несколько минут, так как для него мы будем использовать только несколько фоновых картинок и CSS3 анимацию.
Читать дальше →

Сети для самых маленьких. Часть нулевая. Планирование

Reading time7 min
Views2.2M
Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.

Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.

Схема сети

Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
Читать дальше →

Мониторинг прогнозированием, оповещения о потенциальном сбое

Reading time6 min
Views5.6K

Этот пост является продолжением предыдущего. Мониторинг прогнозированием – не стандартный метод мониторинга. Поэтому и оповещения необходимо использовать не совсем стандартные. Рассмотрим, как это делается и почему именно так.
Читать дальше →

Паттерн Наблюдатель: списки и матрёшки из слушателей

Reading time6 min
Views25K
В этой хабрастатье на примере паттернов Наблюдатель и Компоновщик рассмотрено, как применять принципы объектно-ориентированного программирования, когда стоит использовать композицию, а когда наследование. А так же рассмотрено, какие существуют способы повторного использования кода, кроме copy-paste.

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

Почему программисты работают по ночам

Reading time3 min
Views108K
Мозг шимпанзе в лондонском музее наукиСогласно поговорке, программисты — это устройства, преобразующие кофеин в код.

Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.

Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?

Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.

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

Autodafé

Reading time3 min
Views1.6K
Autodafe — node.js фреймворк для разработки веб приложений

Содержание статьи может описывать неактуальный код. У фреймворка уже давно свой сайт autodafe.ws

Самые вкусные плюшки из коробки:


  • архитектура: MVC + подключаемые модули
  • Mysql ORM (ActiveRecord с поддержкой отношений, асинхронное подобие того, что предлагает Yii framework для PHP )
  • HTTP сервер
  • WebSockets ( обертка для socket.io )
  • удобное перенаправление запросов и человеко понятные УРЛ
  • управление пользователями
    • аутентификация и авторизация, сессии
    • система управления правами ролей пользователей
  • почта
  • логирование в консоль, фс и на почту
  • шаблонизатор

Ложка дегтя:


  • очень малая часть задокументирована
  • задокументированная часть плохо задокументирована
  • плохо задокументированная часть задокументирована только на русском языке
  • тестами покрыт не весь фреймворк


Hello World на Autodafe

Видео: Введение в MPS

Reading time1 min
Views2.8K
В гостях у DevClub побывал Михаил Мухин из компании JetBrains, который рассказал о системе MPS (Meta-Programming System).

На хабре уже была парочка статей про MPS, а теперь это можно увидеть более наглядно на видео с живой демонстрацией кода: www.devclub.eu/2011/12/02/mihail-muhin-mps-intro

Под катом два видео об MPS

Работа с HTTP в 3 строчки, или делаем свой RSS Reader c WebClient и WebBrowser

Reading time6 min
Views5.4K

В мире мобильных устройств балом правит контент. Каждый пользователь смартфона хочет на своём устройстве получить доступ к необходимой ему информации быстро, красиво и, желательно, с экономией трафика.

С другой стороны, каждый владелец информационного ресурса, хочет, чтобы его ресурсом пользовались. Самый простой и распространённый вариант – это RSS ленты. И разнообразные «читалки» RSS доступны на всех мобильных платформах. Даже есть сервис, который может по RSS или ATOM источнику сгенерировать вам приложение для некоторых мобильных платформ, что позволяет веб-мастеру или владельцу ресурса быстро получить доступ к армии пользователей мобильных устройств.

Но мы – разработчики и не ищем лёгких путей. Давайте напишем заготовку для будущего мега-продвинутого RSS Reader для платформы Windows Phone, используя все возможности платформы.
Читать дальше →

Игра на SDL — легко

Reading time4 min
Views26K
Наверняка, каждому да приходила идея написать какую-нибудь графическую игру или программу. Но не всегда есть время или желание осилить графику в программировании. Надеюсь, это статья поможет вам научиться писать(или просто написать) простую, но очень забавную игру.
Finished project
Читать дальше

Интеллектуальные многоканальные оптоволоконные соединения

Reading time7 min
Views9K

Проблемы высокоскоростной передачи данных


С ростом объёмов передаваемой по сети информации становится всё более актуальной проблема высокоскоростной передачи данных. Высокоскоростная передача данных, как правило, предполагает наличие между узлами сети канала связи с высокой пропускной способностью. При разработке канала с высокой пропускной способностью могут использоваться, как решения на основе медных электрических проводников, так и решения на основе оптических соединений. Любое соединение состоит из передатчика, передающего сигнал, и приёмника, принимающего сигнал. Сигнал по соединению может передаваться, как в одном, так и в двух направлениях. Так оптическое соединение может состоять, например, из оптического передатчика, оптического канала и оптического приёмника. В дуплексном режиме оптический приёмопередатчик обеспечивает, как передачу сигнала, так и приём сигнала по раздельным оптическим волокнам, находящимся, как правило, в одном оптоволоконном кабеле.
Читать дальше →

HTML.next или идеи для HTML6

Reading time6 min
Views5.1K
image
Несмотря на то, что спецификацию HTML5 планируется полностью утвердить и добиться максимально широкой функциональной совместимости лишь в 2014 году, уже сейчас начинают выкристаллизовываться идеи о том как должна выглядеть данная спецификация следующего поколения — HTML.next, как его в рабочем порядке называют в W3C-консорциуме.

Новые элементы семантики


<dеcompress>

Данный элемент предлагается использовать для интеграции файлов из ZIP-архива (ZIP в качестве основного формата, возможны и другие) напрямую в веб-страницу. Преимущества такого подхода: доступ веб-браузера к файлам из ZIP, уменьшение требований к пропускной способности канала (что особенно актуально для мобильных платформ).

Пример использования:
<decompress href="http://thisisanexample.com/mobile/familyreunion.zip">
<a href="familyreunion.zip/html/activities.html">Activities from our family reunion</a>
<img src="familyreunion.zip/img/familyreunion1.jpg">

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

Чему нас не научил профессор Ng

Reading time6 min
Views33K
Как видно по дискуссиям на хабре, несколько десятков хабровчан прослушали курс ml-class.org Стэнфордского университета, который провел обаятельнейший профессор Andrew Ng. Я тоже с удовольствием прослушал этот курс. К сожалению, из лекций выпала очень интересная тема, заявленная в плане: комбинирование обучения с учителем и обучения без учителя. Как оказалось, профессор Ng опубликовал отличный курс по этой теме — Unsupervised Feature Learning and Deep Learning (спонтанное выделение признаков и глубокое обучение). Предлагаю краткий конспект этого курса, без строгого изложения и обилия формул. В оригинале все это есть.
Читать дальше →

CryptDB: обработка информации в БД без её дешифрования

Reading time2 min
Views4.9K
Исследователи из МТИ представили СУБД CryptDB, которая способна эффективно обслуживать запросы к БД SQL — поиск, сортировка, математические функции и др. — без расшифровки записей базы. Хотя это не первая разработка подобного рода, но благодаря беспрецедентной производительности эксперты считают CryptDB первой, реально пригодной для практического использования. Предполагается, что подобные разработки могут найти применения в системах облачного хранения данных, которые особенно нуждаются в криптографической защите.


Архитектура CryptDB

Подход, реализованный в CryptDB, называется полным гомоморфным шифрованием. Первую полностью гомоморфную модель для СУБД предложил в 2009 году криптограф из IBM Research Крейг Джентри (Craig Gentry), она является гомоморфной для операций умножения и сложения одновременно, что даёт возможность выразить любую математическую функцию. Правда, была одна проблема: скорость операций по сравнению с обычной СУБД возрастала примерно в триллион раз.
Читать дальше →

Исходный код ядра Solaris 11

Reading time1 min
Views3.3K
Некоторое время назад корпорация Oracle закрыла исходники Solaris и прекратила присылать изменения в OpenSolaris. Такое решение вызвало недовольство многих разработчиков, в том числе некоторых сотрудников компании Oracle. Судя по всему, один из них нарушил корпоративную дисциплину и выложил в открытый доступ исходные коды ядра Solaris 11, так что разработчики открытого проекта OpenIndiana (форк OpenSolaris) могут посмотреть, какие изменения сделаны в ядре, обеспечить совместимость с файловой системой ZFS и т.д.

solaris11.tar.bz2

Правда, использовать фрагменты этого кода в своих проектах нельзя, пока Oracle официально не опубликует их под свободной лицензией CDDL. Кто знает, вдруг Oracle специально организовала эту «утечку», чтобы потом засудить организацию Illumos Foundation, которая занимается разработкой OpenIndiana.

uWSGI включает полноценную поддержку PHP

Reading time2 min
Views7.6K
uWSGI logo

Сегодня появилась приятная новость о том, что отныне uWSGI сервер поддерживает PHP. Нет, на уровне GGI он поддерживал и раньше, но это не идёт ни в какое сравнение с поддержкой на уровне ядра самого uWSGI.
Читать дальше →

Github выпустил сервер непрерывной интеграции на базе Jenkins

Reading time1 min
Views8.6K
Github выпустил сервер непрерывной интеграции проектов Janky, сделанный на базе Jenkins под управлением CoffeeScript-бота Hubot. Фактически, Janky — это просто интерфейс для работы с Jenkins через скрипты и команды Hubot.

Разработка ПО методом непрерывной интеграции (continuous integration, CI) предусматривает выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Например, сборка из репозитория может проводиться каждую ночь по расписанию, с автоматическим прогоном тестов, так что каждое утро разработчики видят результаты тестирования. Такой метод приучает и программистов работать эффективнее, в итеративном режиме с более коротким циклом.

Понятно, что Github как нельзя лучше подходит для работы в режиме непрерывной интеграции. Система Janky заточена на использование Github, в том числе она создаёт соответствующие web-hook’и, а также может ограничивать доступ для сотрудников организации на Github.

Сервер Janky сделан на основе известной системы Jenkins (Hudson). Использование бота Hubot придаёт Janky особый шарм, управление сервером осуществляется с помощью простых команд.

Что такое искусственные нейронные сети?

Reading time10 min
Views126K
Искусственные нейронные сети применяются в различных областях науки: начиная от систем распознавания речи до распознавания вторичной структуры белка, классификации различных видов рака и генной инженерии. Однако, как они работают и чем они хороши?

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

Установка Redis + Redis PHP + phpRedisAdmin на боевом сервере за 15 минут

Reading time4 min
Views71K
Всем уже давно известно, что самые лучшие бинарные файлы — это те, которые были скомпилированы именно на этом компьютере. И, когда вопрос заходит о производительности, то компилирование компонентов на этом компьютере даст свое преимущество в скорости и стабильности.

В данной статье речь пойдет о том, как подготовить Redis, phpredis (С модуль для php) и phpRedisAdmin для работы на боевом сервере.

Для того, чтобы собрать все полноценно, нам нужно иметь на сервере:
  • gcc 4.5.2 (Я компилировал под этой версией, но думаю, что с другими проблем не возникнет)
  • Make 3.81 (Опять же, версия не принципиальна)
  • php5-dev (Версия должна совпадать с версией php)


После того, как мы убедимся, что все зависимости удовлетворены, начинаем собирать все компоненты.
Нам потребуются:
  • Redis 2.4.4 Stable
  • phpredis 2.1.3
  • phpRedisAdmin

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

Redis, hiredis, libev и multithread. Часть 2

Reading time3 min
Views6K
В продолжение первой части хочется рассказать, как это все действительно работает. Много времени было положено на тесты и отладку, и сейчас хочется выложить подробные рекомендации по результатам исследований, которые были проведены.

Внимание! Исследования проводились не для понимания, зачем мне это нужно, а для понимания как оно работает!

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

Успешный Kanban в небольшой команде

Reading time5 min
Views18K
Ознакомившись с постами, в которых хабрапользователи описывают процессы внедрения и реализации гибких методологий в производство, решил поделиться собственным опытом разработки по методологии Kanban в небольшой продуктовой команде.

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

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

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity