Как стать автором
Обновить
0
0

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

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

Нил Деграсс Тайсон отвечает на вопросы

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


Американский астрофизик, доктор наук, писатель, популяризатор науки Нил Деграсс Тайсон отвечает на вопросы читателей журнала «Тайм». У этого замечательного деятеля есть свой сайт и твиттер. Например, сегодня из его твиттера я узнал, что из-за преломления света, рассвет наступает на пять минут раньше, чем встает солнце, а закат наступает на пять минут позже. Это означает, что 21 марта, в день равноденствия ночь для нас не равнялась дню — ночь была на 10 минут короче.

Вообще об этом человеке можно много рассказывать, но я думаю, лучше послушать его самого.
Всего голосов 56: ↑55 и ↓1+54
Комментарии29

Мониторинг производительности PHP-кода с помощью Pinba

Время на прочтение15 мин
Количество просмотров41K
Давайте представим себе типичный, набирающий популярность стартап, использующий, например, PHP или Python. Сначала все находится на одном сервере — PHP (или Python), Apache, MySQL. Затем вы выносите MySQL на отдельный сервер, устанавливаете nginx для раздачи контента, возможно, добавляете memcached для кеширования и еще несколько серверов приложений…

Со временем число серверов будет расти, и рано или поздно вы зададитесь вопросами
«А что сейчас вообще происходит с системой? Как часто выполняется тот или иной скрипт и как долго? Какие операции занимают большую часть времени?» Системы мониторинга типа Zabbix дают лишь общую, поверхностную картину состояния приложения.

Чтобы получить ответы на эти вопросы, в Badoo был разработан сервиc мониторинга и статистики в реальном времени — Pinba. В данной статье мы расскажем о нашем опыте использования его для мониторинга и профайлинга нашей системы.
Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии63

Декорирование Ext JS4

Время на прочтение4 мин
Количество просмотров11K
Используя ExtJS в своих проектах, приходится постоянно видеть один и тот же сине-голубой интерфейс, что не всегда хорошо. В 4й версии этого фреймворка появился удобный компонент для изменения внешнего вида вашего веб-приложения без ручной правки CSS, основанный на использовании метаязыка SASS. С его помощью можно получить интерфейс, внешне не похожий на стандартный, заменив всего пару строк в конфигурационном файле.
Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии12

accounting.js — форматирование чисел и валют

Время на прочтение2 мин
Количество просмотров28K
В одном из проектов мне понадобилось реализовать переключение валют с последующим реформатированием значений денежных сумм, встречающихся на странице.Как это у меня часто получается, я это реализовал и через пару недель наткнулся на небольшую библиотечку, которая позволяет довольно удобно выполнить именно эту операцию.
Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии10

Эмулятор i8080 на bash

Время на прочтение4 мин
Количество просмотров7.5K
Сегодня они пишут xonix, а завтра напишут на баше отдельную операционную систему с фреймворком и СУБД.

Наконец, завтра наступило. В bash (после некоторого допиливания) можно запустить серьезную ОС, например, CP/M. А для CP/M определенно есть СУБД, компиляторы и многое другое.



Почему не нужно и зачем нужно делать эмуляторы на bash, работающий эмулятор i8080 на bash и несколько советов по ускорению работы bash-скриптов -
под катом.
Всего голосов 88: ↑83 и ↓5+78
Комментарии37

Интерполяция: рисуем гладкие графики средствами PHP и GD

Время на прочтение6 мин
Количество просмотров58K
Распространенной задачей для программиста является рисование графиков. Входными данными является массив точек (xi;yi). Как правило, мы знаем только некоторые значения — в определенных точках графика. Чтобы построить непрерывный график кривой необходимо прибегнуть к интерполяции или аппроксимации.



Интерполяция — построение кривой, проходящей через заданные точки.
Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.

В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).

Кратко рассмотрим методы интерполяция и аппроксимации.
Читать дальше →
Всего голосов 80: ↑77 и ↓3+74
Комментарии23

Faviconist: Создайте красивый favicon с HTML5

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

Каждый сайт должен иметь favicon. Если вы до сих пор не сделали значок для вашего сайта — сделайте, теперь это еще проще!
Faviconist — новый favicon генератор от Michael Mahemoff.

Вам больше не нужен Photoshop для создания простого значка. Как Mahemoff пишет в своем блоге: Faviconist для 95% людей, которых устроит микро-дизайн их иконки, остальным все равно придется прибегнуть к Photoshop.
Читать дальше →
Всего голосов 53: ↑45 и ↓8+37
Комментарии17

Область видимости в JavaScript и «поднятие» переменных и объявлений функций

Время на прочтение6 мин
Количество просмотров157K
Вы знаете, какое значение выведет этот код на JavaScript?
var foo = 1; 
function bar() { 
    if (!foo) { 
        var foo = 10; 
    } 
    alert(foo); 
} 
bar();

Читать дальше →
Всего голосов 135: ↑122 и ↓13+109
Комментарии71

Полезные инструменты, туториалы и ресурсы

Время на прочтение4 мин
Количество просмотров15K
Созданый Райаном Далем в 2009 году, Node.js — относительно новая технология, завоевавшая в последнее время большую популярность среди веб-разработчиков. Однако, до сих пор не каждый знает, что на самом деле Node.js это серверная JavaScript среда, использующая асинхронную событийную модель. Что это означает? Все просто: это среда, которая предназначена для написания масштабируемых, высокопроизводительных приложений. Почти как Ruby’s Event Machine или Python’s Twisted, но гораздо глубже — JavaScript реализовывает цикл событий, на уровне самого языка, а не как отдельная библиотека.



И это еще не все: то, что действительно круто в Node.js — это тысячи модулей, доступных для любых целей, а также активниешее сообщество этого молодого проекта. В этом обзоре вы найдете самые полезные ресурсы по Node.js, от просто удобных инструментов и подробных руководств, до углубленных статей и ресурсов о этой перспективной технологии. Используете ли вы Node.js? Поделитесь опытом в комментариях к этотому посту!

Читать дальше →
Всего голосов 138: ↑129 и ↓9+120
Комментарии70

Docblox — некоторые нововведения

Время на прочтение7 мин
Количество просмотров2.1K
Эта статья более подробно рассматривает некоторые нововведения, предложенные Docblox,- системой документирования для PHP 5.3+. Для понимания некоторых вещей необходимо прочитать предыдущую статью. Для простоты в качестве каталога с тестовыми исходными кодами я использовал /src/example/ (/src— симлинк на реальный каталог с моими исходными кодами).
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии2

YAF — самый быстрый php фреймворк*

Время на прочтение1 мин
Количество просмотров14K
Yaf — это PHP микро-фреймворк, взявший за основу структуру приложения Zend Framework, но написанный на С и является PHP extension доступным через PECL.

Основной (и единственной) задачей для написания его послужила необходимость максимально быстрой (сравнимой с php) обработки запросов в парадигме MVC но с удобством предоставляемым Zend Framework.

Yaf и Zend Framework, имеют аналогичные API и подобную концепцию, сохраняя при этом совместимость.
Я сгенерировал тестовое приложение (zf create project test) и провел небольшой синтетический тест производительности.
Интересен результат? Добро пожаловать под кат
Всего голосов 73: ↑62 и ↓11+51
Комментарии97

Подбор вкладов и кредитов на вашем сайте

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

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

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

Подключить к своему сайту API Яндекс.Услуг можно совершенно бесплатно и без особого труда. Взамен мы хотим от вас замечаний, предложений и новых идей по совершенствованию нашего API. Делитесь соображениями прямо в комментариях к этому посту.

Команда Яндекс.Услуг, ищем общую выгоду

.
Всего голосов 48: ↑42 и ↓6+36
Комментарии7

Старинный телефон на базе Android

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

Введение

Однажды я смотрел какой-то старый фильм. Герой воспользовался телефоном: снял трубку, попросил оператора набрать номер друга и стал беседовать. Мне очень понравилась простота, с которой был сделан звонок, и внешний вид телефона. Я решил собрать такой телефон сам. Поднимаешь трубку, говоришь, кому позвонить, голос распознаётся, имя отыскивается в адресной книжке, и совершается VoIP звонок.

В этом посте я расскажу про детали проекта: про устройство на базе Android, про IOIO Board, про вырезание по дереву и по пластику.
Читать дальше →
Всего голосов 186: ↑182 и ↓4+178
Комментарии51

Events bubbling и events capturing

Время на прочтение5 мин
Количество просмотров64K
intro
Представьте, что на странице есть два блока, и один вложен в другой, как это показано на рисунке. В разметке страницы это выглядит так:
   <div id="block_outer">
      <div id="block_inner"></div>
   </div>

А теперь представьте, что к блоку #block_outer привязано событие onClickOuter, а к блоку #block_inner, соответственно, событие onClickInner. И ответьте на вопрос, как сделать так, чтобы при клике на блок #block_inner, событие onClickOuter не вызывалось? И будет ли оно вообще вызвано? И если будет, то в каком порядке события будут вызываться? И знаете ли вы, как работает метод jQuery.live или подобные в других библиотеках (events delegation в ExtJS, например)?
Если я хоть немного заинтересовал, добро пожаловать под кат.
Всего голосов 93: ↑87 и ↓6+81
Комментарии21

Практика прохождения собеседований или как я переехал в столицу

Время на прочтение4 мин
Количество просмотров20K
Привет, %хаброюзер%!

Сегодня я поделюсь с вами своим опытом прохождения собеседований на вакансии PHP-программиста в «белокаменной»Москве.
Читать дальше →
Всего голосов 279: ↑168.5 и ↓110.5+58
Комментарии174

Создание CRUD приложения на Symfony 2

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

Symfony 2.0


Недавно вышедшая версия фреймворка Symfony 2 включает в себя много интересных фич. В данной статье хочу рассказать про создание CRUD приложений — очень часто встречающейся задачи создания веб-интерфейса для создания, чтения, обновления и удаления записей в БД.
Далее
Всего голосов 30: ↑29 и ↓1+28
Комментарии30

Как MySQL оптимизирует ORDER BY, LIMIT и DISTINCT

Время на прочтение16 мин
Количество просмотров15K
Есть задачи, которые в рамках реляционных СУБД не имеют универсальных решений и для того чтобы получить хоть какой-то приемлемый результат, приходится придумывать целый набор костылей, который ты потом гордо называешь “Архитектура”. Не так давно мне как раз встретилась именно такая.

Предположим, имеется некоторые сущности А и Б, связанные между собой по принципу One-to-Many. Количество экземпляров данных сущностей достаточно велико. При отображении сущностей для пользователя необходимо применить ряд независимых критериев, как для сущности А так и для сущности Б. Причем результатом применения критериев являются множества достаточно большой мощности — порядка нескольких миллионов записей. Критерии фильтрации и принцип сортировки задается пользователем. Как (я бы ещё спросил: Зачем им миллионы записей на одном экране? — но говорят надо) показать все это пользователю за время 0 секунд?
Решать такие задачи всегда интересно, но их решение сильно зависит от СУБД, под управлением которой крутится твоя база данных. Если у тебя в рукаве козырной туз в виде Oracle, то есть шанс, что эти костыли он подставит сам. Но спустимся на землю — у нас есть только MySQL, так что придется почитать теорию.
Далее ...
Всего голосов 115: ↑110 и ↓5+105
Комментарии18

HTML5 Drag and Drop загрузка файлов

Время на прочтение4 мин
Количество просмотров137K
image
Благодаря нововведениям HTML5 создавать Drag and Drop интерфейсы стало гораздо проще. К сожалению, эти нововведения еще не обладают обширной поддержкой браузеров, но надеюсь в скором времени это изменится (на данный момент работает в Firefox 4+, Chrome и Opera 11.10).

Читать дальше →
Всего голосов 81: ↑79 и ↓2+77
Комментарии61

Установка Ubuntu Desktop на LVM

Время на прочтение6 мин
Количество просмотров36K
Классические разделы, на которые чаще всего разбивается жёсткий диск для установки системы и хранения данных, имею ряд существенных недостатков. Их размер очень сложно изменять, они находятся в строгой последовательности и просто взять кусочек от первого раздела и добавить к последнему не получится, если между ними есть ещё разделы. Поэтому очень часто при начальном разбиении винчестера пользователи ломают себе голову — сколько места выделить под тот или иной раздел. И почти всегда в процессе использования системы приходят к выводу, что они сделали не правильный выбор.

К счастью, решить большинство этих проблем в Linux может технология LVM. Она создаёт дополнительную абстракцию — логические тома, которые видны в системе, как обычные разделы, однако реально ими не являются. Эта технология очень полезна для серверов, однако и на домашних компьютерах она приходится очень к месту. Я больше не думаю, какого размера диск выделить под систему, чтобы какой-нибудь texlive не забил бы всё место, но и чтобы лишние 5 — 10 гигабайт не пропадали просто так. LVM имеет ряд существенных преимуществ, значительно упрощающих жизнь:
  • Логические тома LVM больше не привязаны к физическому местоположению. В рамках LVM вообще не существует такого понятия, как порядок логических томов.
  • Размер логических томов можно увеличивать прямо на лету, а у отмонтированных томов можно кроме того легко уменьшать размер, не выходя из системы.
  • При необходимости можно размазать логические тома по нескольким физическим жёстким дискам, таким образом увеличив доступное место. При этом система всё так же будет видеть только один логический том, хотя размер его будет превышать доступные размеры жёстких дисков. Можно провести и обратную операцию, удалив жёсткий диск из LVM, таким образом освободив его для другого использования.
  • LVM поддерживает механизм снапшотов — мгновенных копий файловой системы тома. Это может очень пригодиться для создания бекапов.
  • Есть ещё масса плюсов, о которых можно почитать в специализированных статьях про LVM.
Читать дальше →
Всего голосов 89: ↑81 и ↓8+73
Комментарии88

Техноблог: почему Evernote выбрал Apache Thrift для построения своего API

Время на прочтение4 мин
Количество просмотров15K
Thrift
Когда мы начинали планировать, как будет устроен сервис Evernote, в 2007 году, мы знали, что в первый же день нам понадобится поддержка как “тонких” (таких как браузеры), так и “толстых” синхронизируемых клиентов. Это побудило нас задуматься над удаленным протоколами и клиентским API еще до начала работы над любым GUI для веба. В противном случае пришлось бы ждать несколько месяцев, пока прикрутят API на уже существующий веб-сервис.

Наши приложения предъявляют к API определенные требования, как то:
Читать дальше →
Всего голосов 45: ↑42 и ↓3+39
Комментарии22

Информация

В рейтинге
Не участвует
Откуда
Дашев, Винницкая обл., Украина
Дата рождения
Зарегистрирован
Активность