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

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

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

Какой лучший возраст для программиста?

Время на прочтение2 мин
Количество просмотров60K
В массовом сознании давно укоренилось, что программирование — это работа для молодых. Честно говоря, я сам так считал до совсем недавнего времени. Исходил я, при этом, из предположения, что молодые люди легче учатся, быстрее и лучше думают и, поэтому, в большей степени подходят для решения алгоритмических задач. Мне казалось, что с возрастом мозг работает хуже, память ухудшается, нейроны вроде не восстанавливаются, а способность к быстрому обучению падает. Правда, меня смущало то, что на своем собственном опыте я убеждался как раз в обратном: сейчас, в 42 года, я определенно думаю лучше, чем в 20 лет.

Недавно прочтенная статья заставила меня кардинально изменить взгляды.

Читать дальше →
Всего голосов 120: ↑100.5 и ↓19.5+81
Комментарии182

HTML5 для веб-дизайнеров. Часть 3: Мультимедиа

Время на прочтение14 мин
Количество просмотров8.2K
HTML5 для веб-дизайнеров

  1. Краткая история языка разметки
  2. Модель HTML5
  3. Мультимедиа
  4. Формы 2.0
  5. Семантика
  6. HTML5 и современные условия


В истории всемирной сети каждый очередной виток перехода на новый уровень развития начинался с какого-нибудь технологического нововведения. Когда в HTML добавился элемент img, это в корне изменило облик сети. Затем введение JavaScript сделало ее более динамичной и интерактивной. Чуть позже появился Ajax, что открыло возможности для создания в сети полноценных приложений.

Современные веб-стандарты настолько продвинуты, что сейчас можно создать почти что угодно, используя лишь возможности HTML, CSS и JavaScript. Почти что угодно.

В спецификациях этих стандартов все еще есть пробелы. Так, если вы хотите сваять страницу с текстом и картинками, вы вполне обойдетесь HTML и CSS. Но если вам нужно опубликовать аудио или видео, тут неизбежно придется обратиться к сторонним технологиям — Flash или Silverlight.

Эти технологии — «плагины», эдакие «затычки», заполняющие «дыры» в сети. Они делают относительно простой публикацию игр, фильмов и музыки онлайн, но они не открыты и принадлежат и контролируются частными компаниями. Да, тот же Flash — мощный инструмент, но его применения в какой-то мере схоже со сделкой со злыми силами: мы получаем новые, недоступные другим путем, возможности, но взамен теряем часть свой независимости.

HTML5 призван восполнить этот недостаток. В данный момент он вступает в прямую конкуренцию с собственническими технологиями, вроде Flash и Silverlight, и главное его преимущество в этой борьбе — ему не требуется плагины, так как его мультимедиа-возможности «вшиты» в браузеры.
Читать дальше →
Всего голосов 113: ↑111 и ↓2+109
Комментарии30

HTML5 для веб-дизайнеров. Часть 4: Формы 2.0

Время на прочтение11 мин
Количество просмотров22K
HTML5 для веб-дизайнеров

  1. Краткая история языка разметки
  2. Модель HTML5
  3. Мультимедиа
  4. Формы 2.0
  5. Семантика
  6. HTML5 и современные условия


Когда браузеры стали поддерживать JavaScript, за ним быстро закрепились две основные задачи: эффекты при наведении мышью и улучшения для веб-форм. Потом в CSS появился псевдо-класс :hover и необходимость в скриптах для многих ситуаций первого плана отпала.

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

Говоря о формах, тут возможности CSS довольно ограничены. И теперь на сцену снова выходит HTML5. Следуя тому же принципу, он вводит новые функции, которые на самом деле вовсе не новые, но сделаны проще и удобнее.

Нетрудно догадаться, что прежде они были частью отдельной спецификации WHATWG под названием Web Forms 2.0.
Читать дальше →
Всего голосов 124: ↑121 и ↓3+118
Комментарии30

HTML5 для веб-дизайнеров. Часть 2: Модель HTML5

Время на прочтение12 мин
Количество просмотров14K
HTML5 для веб-дизайнеров

  1. Краткая история языка разметки
  2. Модель HTML5
  3. Мультимедиа
  4. Формы 2.0
  5. Семантика
  6. HTML5 и современные условия


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

Вместе с тем, она была полным провалом. Никто ей не пользовался.

То же самое можно сказать и про XHTML 2. W3C только лишний раз доказал то, чему нас научил урок послереволюционной Франции: изменить привычки людей по приказу очень-очень трудно.

Читать дальше →
Всего голосов 124: ↑121 и ↓3+118
Комментарии57

Как найти вашего первого клиента

Время на прочтение4 мин
Количество просмотров88K
imageКогда станете хорошо известны в своем деле, клиенты будут постоянно обращаться к вам, а не выбудете искать их. Когда есть много работы, то и стараться продавать свои услуги не будет особой нужды.

Но, что делать, если только начинаешь? Прежде чем станут обращаться клиенты, могут быть проблемы с тем, что делать целый день. Это идеальное время, чтобы дать о себе знать.

Поиск клиентов для каждого разный и то, что работает для одного, не всегда работает для другого. Тем не менее, я бы хотел поделиться некоторыми из способов, при помощи которых я получал работу в самом начале.
Читать дальше →
Всего голосов 104: ↑86 и ↓18+68
Комментарии24

Несколько советов для PHP-разработчиков

Время на прочтение4 мин
Количество просмотров7.9K
image Хочу опубликовать небольшой сборник советов для современных PHP-разработчиков. Я умышленно не связываю их с теми или иными фреймворками, библиотеками и тп. Надеюсь, что мои советы помогут кому-то лучше понять PHP, научиться лучше его использовать. Некоторые из них могут быть не специфичны для PHP, но для программирования в общем.
Читать дальше →
Всего голосов 214: ↑156 и ↓58+98
Комментарии202

HTML5 для веб-дизайнеров. Часть 1: Краткая история языка разметки

Время на прочтение7 мин
Количество просмотров13K
HTML5 для веб-дизайнеров

  1. Краткая история языка разметки
  2. Модель HTML5
  3. Мультимедиа
  4. Формы 2.0
  5. Семантика
  6. HTML5 и современные условия


HTML — язык, объединяющий всемирную сеть. Всего лишь посредством набора простых тегов, человечеству удалось создать несравнимую ни с чем по своим масштабам систему связанных между собой страниц и веб-узлов: от Amazon, eBay и Википедии, до личных блогов и сайтов, посвященных котам, похожим на Гитлера.

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

Как и всемирная сеть вообще, HTML — язык разметки гипертекста (HyperText Mark-up Language) — является детищем сэра Тима Берненс-Ли (Sir Tim Berners-Lee). В 1991 году он написал работу, озаглавленную «HTML Tags», в которой описал чуть меньше двух дюжин тегов, предложенных им для разметки веб-страниц.

Идея использовать для этого кодовые слова внутри треугольных скобок, впрочем, не принадлежит сэру Тиму. Такая система на тот момент уже существовала и использовалась в SGML (Standard Generalised Markup Language, стандартный обобщённый язык разметки), и вместо того, чтобы изобретать что-то с нуля, сэр Тим посчитал более рациональным взять за основу уже существующие решения. Аналогичный подход применялся и вообще на всем пути к HTML5 в процессах разработки.

Читать дальше →
Всего голосов 91: ↑82 и ↓9+73
Комментарии42

Как поймать «поток», и как сделать так, чтобы он не сорвался

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

Вступление


Я, как руководитель проектов, всё больше и больше замечаю, что эффективность работы команды (и каждого программиста в частности) – это ключевой фактор, определяющий успех проекта. При эффективной работе даже самые тяжёлые проекты со сжатыми сроками удаётся завершить успешно, а неэффективная способна «завалить» простейшие проекты с минимумом рисков. Поэтому, я хотел бы поделиться своими мыслями об одном из ключевых понятий – понятии «работы потоком».

Читать дальше →
Всего голосов 223: ↑212 и ↓11+201
Комментарии130

Сообщаем о ремонтных работах на сервере

Время на прочтение1 мин
Количество просмотров4.5K
Обновление Хабра, проходившее вчерашним вечером, побудило написать краткую заметку. Во время тех.работ Хабр вывешивает одностраничную заглушку, текст на которой гласит о происходящих работах. Заглушка отдается по всем запрошенным адресам. Никакого редиректа: по какому адресу статьи не зайди — везде одинаковый текст о ремонте. При этом ответ сервера сопровождается статусом «HTTP/1.1 200 OK». Так делает большинство известных мне сайтов. И если человеку, по большому счету, все равно, то поисковик, проводящий индексацию сайта в этот момент, видит, что по адресу со статьей обновилось содержание — надо обновить индекс.

Это всё модальные окошки, которые придумали программисты:
[произошла какая-то фигня] — [OK] — Да это же ни фига не ОК!
@mad_escape

Решение придумано до нас и давно стандартизировано
Всего голосов 145: ↑139 и ↓6+133
Комментарии25

Несколько других советов для PHP-разработчиков

Время на прочтение3 мин
Количество просмотров9.8K
Навеяно вот этим.

Я решил вспомнить некоторые особенности PHP, связанные с производительностью.

Отмечу, что включил в свой небольшой список лишь то, что обычно вызывает удивление у junior developers, с которыми мне приходилось работать.
О банальных вещах, вроде «одинарные кавычки вместо двойных», думаю, знают все, поэтому постараюсь кого-нибудь удивить.

Результаты и выводы, сделаны на основании нескольких версий PHP, который крутятся на знакомых мне серверах, а именно 5.2.6 из Debian Lenny, 5.3.2 из Ubuntu, и 5.2.14 из dotdeb. Возможно, на других платформах, есть отличия.
Читать дальше →
Всего голосов 173: ↑149 и ↓24+125
Комментарии301

Scalar type hints в PHP

Время на прочтение1 мин
Количество просмотров3.2K
Johannes Schlüter опубликовал в своем блоге информацию о том что в trunk (PHP) появилась поддержка scalar type hints. Многие из нас очень давно этого ждали.

Выглядит это приблизительно так:
<?php
function check_counter( int $counter)
{
return;
}
?>


Если попытаться передать в такую функцию не int, получим Catchable fatal error.
Всего голосов 84: ↑65 и ↓19+46
Комментарии127

Не строим с нуля. Теперь у Вас есть шаблон для верстки HTML5

Время на прочтение2 мин
Количество просмотров17K
Любовь к HTML5 продолжает вдохновлять Поля Айриша. Во-первых, он подарил нам Modernizr, а сейчас он объединился с Divya Manian для создания шаблона HTML5, который использует передовые техники, чтобы Вы могли начать использовать его в своей практике.

Он, в сущности, является хорошей отправной точкой, состоящей из HTML и CSS, предлагающим также и структуру папок, которая работает. Но созданным с учётом многих лет передового опыта профессионалов в разработке клиентской части. Загляните в исходные тексты, чтобы почувствовать, что находится внутри. А если вы думаете, что этого слишком много, просто удалите лишнее.
Читать дальше →
Всего голосов 157: ↑146 и ↓11+135
Комментарии48

Уязвимость связки PHP+nginx с кривым конфигом

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

Summary


Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




Background


Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
}

Читать дальше →
Всего голосов 163: ↑146 и ↓17+129
Комментарии109

Ресайзинг изображений со скоростью 180 штук в секунду

Время на прочтение3 мин
Количество просмотров3.9K
Программисты с Etsy.com поделились опытом, как им удалось эффективно решить задачу по пакетному ресайзингу фотографий с 1,5 МБ до 3 КБ (после смены дизайна оказалось, что старые превью-окошки не вписываются в новые шаблоны страниц). Задача не такая банальная, как кажется. Дело в том, что Etsy.com — крупный интернет-аукцион, и количество изображений различных товаров превышает 135 млн штук.

Ради шутки они прикинули, сколько займёт эта работа вручную в «Фотошопе». Если на каждую фотографию отдать по 40 секунд, то выходит 170 лет непрерывного труда. Затем они начали считать, можно ли отдать пакет в облако EC2 и во сколько это встанет. Посмотрев на получившуюся сумму, программисты решили поискать другой способ.

В итоге им удалось завершить обработку 135 млн фотографий всего за 9 дней, задействуя четыре 16-ядерных сервера. Средняя скорость обработки составила 180 изображений в секунду.
Читать дальше →
Всего голосов 165: ↑156 и ↓9+147
Комментарии156

Правильная обработка ошибок в PHP

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

Что я понимаю под правильной обработкой:


  • Универсальное решение, которое можно вставить в любой существующий код;
  • Легко расширяемое решение;
  • В PHP аж три «механизма ошибок»: собственно ошибки (error), исключения (exception) и утверждения (assertion). Свести три механизма к одному — exception. В комментариях к предыдущей статье на эту тему выражалось мнение, что exception это плохой и/или сложный метод обработки ошибок. Я так не считаю и готов это обсудить в комментариях;
  • Опциональное логирование;
  • Общий обработчик exception, который будет поддерживать разные форматы вывода и debug/production режимы;
  • В debug режиме должен выводится trace. Требования к trace: компактный, понятный и по возможности ссылки на открытие файлов в IDE.

Теперь по порядку
Всего голосов 105: ↑84 и ↓21+63
Комментарии102

Вирус для «блондинок» Trojan.Click1.25237

Время на прочтение2 мин
Количество просмотров3.1K
Как показал опрос, проведённый среди пользователей Хабрахабра, только половина процента (!) (0,52%) опрошенных пользователей борются с новыми вирусами, отправляя их в техподдержку. Примерно треть лечит «фирменным антивирусом» и почти столько же — бесплатным или пытаются удалить самостоятельно.
Далее рассказ, как боролись с вирусом для «блондинок».

image
(p.s. Осталось 15 голосов за топик, чтобы получить инвайт на Хабр для хорошего человека. Или 65 голосов в карму, но это менее вероятно)
Читать дальше →
Всего голосов 105: ↑70 и ↓35+35
Комментарии107

Код, который невозможно поддерживать

Время на прочтение7 мин
Количество просмотров11K
Вольный перевод с сокращениями первой части эссе «Unmaintainable Code». Именование переменных — довольно банальная тема (хоть и забавно изложенная), но без этой части эссе было бы неполным.

Пролог



Это самое популярное из моих эссе. Удивительно, сколько людей не понимают, что это насмешка.

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

Не переусердствуйте: ваш код не должен выглядеть неподдерживаемым, а только быть таким, иначе он рискует подвергнуться рефакторингу или просто быть переписанным.

Читать дальше →
Всего голосов 135: ↑115 и ↓20+95
Комментарии58

Интерактивная консоль PHP

Время на прочтение2 мин
Количество просмотров7.1K
Идея этого лежит на поверхности, но почти все, кому я показывал эту штуку, удивлялись и просили дать им ссылку. Хотя идея простая, а про stdin и readline знают почти наверное все.

Так вот, интерактивная консоль — это просто и очень полезно. С историей и автодополнением.

такие дела
Читать дальше →
Всего голосов 101: ↑78 и ↓23+55
Комментарии88

Пишем простейший торрент трекер на php

Время на прочтение5 мин
Количество просмотров28K
Обмен файлами всегда привлекал людей, для этого собственно и был изобретен протокол BitTorrent.

Большинство торрент трекеров написано на PHP, хотя встречаются и такие, которые написаны на C# языке, но для ознакомления мы будем использовать именно PHP.

Давайте рассмотрим что из себя представляет трекер.
Читать дальше →
Всего голосов 172: ↑111 и ↓61+50
Комментарии100

PHP 5.2 → 5.3: трудности перевода

Время на прочтение2 мин
Количество просмотров8.8K
Так получилось, что мы попробовали перевести некоторые проекты на 5.3 в ходе переезда нашего collocated хостинга, в результате обнаружилась забавная несовместимость на уровне багов между 5.2 и 5.3.

Проблема возникла в недрах нашей CMS, и, как оказалось, имеет занятную предысторию.

Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии35

Информация

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