Pull to refresh
99
0
Дима Семьюшкин @Devgru

Веб-разработчик

Send message

The PHP Benchmark

Reading time1 min
Views1.1K
Chris Vincent собрал в кучу и опубликовал результаты тестов производительности некоторых операций PHP. Например, присутствуют такие сравнения:
foreach() vs. for() vs. while(list() = each())
echo vs. print
и другие, не менее любопытные, тесты.
Результаты представлены наглядно, в графическом и текстовом виде.
Рекомендуется к ознакомлению. :)

DimP — плеер с прямой манипуляцией видеоряда

Reading time1 min
Views1.1K
Просматривая статьи на techCrunch, нашел вот такую заметку про интересный видеоплеер.

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

Ну и лучше всяких слов, расскажет и покажет как работает плеер вот этот видеоролик:


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

PHP: array_search — быстрый поиск по массиву

Reading time3 min
Views14K
Я уже достаточно долго использую функцию array_search() для поиска значений в массиве, так как неоднократно слышал и читал о том, что она работает заметно быстрее, чем поиск по массиву в цикле, но насколько она быстрее — не знал. Наконец-то дошли руки самому проверить и посчитать.

Сравнил скорость поиска в массиве с помощью этой функции с обычным перебором массива в циклах foreach и while. На 10-100 элементах массива разница незаметна да и время столь мало, что им можно принебречь. А вот для больших массивов разница оказалась весьма существенной. С увеличением размера массива на порядок, значительно увеличивалось и время поиска. При ста тысячах элементов скорость foreach падала до 0,013 секунды, а while — до 0,017, при том что array_search() тоже замедлился, но все-таки остался на порядок быстрее — 0.004 секунды. Для большого скрипта, работающего с большими массивами замена поиска в цикле на поиск с помощью array_search() будет вовсе не «блошиной оптимизацией».

UPD: добавил в циклы break и менял искомое значение так, чтобы оно было в середине массива — 5-50-500 и т.д. Данные в таблице обновленные.
Число элементов массива   array_search   Цикл foreach  Цикл while  
10 0.0000068 0.0000064 0.0000076
100 0.0000078 0.0000153 0.0000185
1000 0.0000209 0.0001177 0.0001351
10000 0.0004210 0.0012128 0.0018670
100000 0.0039679 0.0130989 0.0175215


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

UPD: нужен программистский склад ума, тоже нужен! И внимательность с памятью не помешают (навеяно break и range :)

Под хабракатом код скрипта, которым подсчитывал время:

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

Немного из опыта покупок на E-Bay-в основном для москвичей

Reading time8 min
Views24K
Итак, вдохновленный успехом топика – kovalevvalery.habrahabr.ru/blog/43607.html
и многочисленными просьбами тех, кому интересно услышать об опыте покупок на E-bay решил написать данный «материал». Ну заодно и блог одноименный завел…

Сразу оговорюсь, материал не будет претендовать на идеальную полноту изучения вопроса. А только лишь может быть обратит внимание на неявные нюансы, не описанные в многочисленных хэлпах E-bay, или просто вкратце изложит суть вопроса.
Читать дальше →

30 советов, как эффективно трудиться и не сойти с ума, работая дома

Reading time5 min
Views18K
Тем, кому знакомы прелести работы дома (на себя, фрилансером или удаленно на ставку), также знаком соблазн поваляться на диване и затягивание сроков.

Я тоже люблю вздремнуть часок-другой, но это должно быть перерывом, а не постоянным рабочим режимом.

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

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

Энергия без проводов. К новому миру беспроводного электричества

Reading time4 min
Views14K
В конце XIX века открытие того, что при помощи электричества можно заставить светиться лампочку, вызвало взрыв исследований, целью которых было найти наилучший способ передачи электроэнергии. Во главе гонки оказался знаменитый физик и изобретатель Никола Тесла, который разработал грандиозный проект. Не в состоянии поверить в реальность создания колоссальной сети проводов, охватывающих все города, улицы, здания и комнаты, Тесла пришёл к выводу, что единственный реализуемый способ передачи — беспроводной. Он спроектировал башню высотой примерно 57 метров, которая должна была транслировать энергию на расстояние в многие километры, и даже начал строить её на Лонг-Айленде. Был проведён ряд экспериментов, но нехватка денег не позволила достроить башню. Идея с передачей энергии по воздуху рассеялась, как только оказалось, что промышленность в состоянии разработать и реализовать проводную инфраструктуру.

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

Фотошопим на PHP

Reading time2 min
Views4.1K
Уменьшаем изображение разными библиотеками и сравниваем результат Для многих задач автоматической обработки фотографий не подходит качество и функционал библиотеки GD. Поскольку возможности обратиться к Photoshop из PHP или Perl пока не существует, решаем проблему с помощью ImageMagick.

Речь пойдет о PHP инрефейсе к ImageMagick MagickWand, который в репозитарии Fedora называется php-magickwand. Хочу обратить Ваше внимание, что MagickWand API отличается от классического ImageMagick тем что позволяет работать как с элементами растровой графики, так и с элементами векторной графики.

Для php есть еще одна реализация интерфейса к ImageMagick, которая называется IMagick, но функционал этой библиотеки, на мой взгляд, уступет MagickWand.


В первой статье рассмотрим на примерах несколько типичных задач по обработке изображений и сравним результаты с php-gd.



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

Цветовая идентификация

Reading time1 min
Views811
function get_username_html_color($username )
{
   return '#' . substr( md5($username ), 0, 6 );
}

Я, например, вот такой subz. Первые попавшиеся под руку %username%: rost, anvar, navosha.
Пытливым умам посчитать хватит ли краски для всех хабраюзеров.

Спасибо Dreadatour за реализацию dreadatour.ru/username
Спасибо salvator за реализацию ssalvator.googlepages.com/colorizer.html
Читать дальше →

Что внутри высоконагруженных сервисов?

Reading time1 min
Views1.4K
По роду деятельности интересуюсь различными аспектами реализации высоконагруженных сервисов, тут возник вопрос, на чем же лучше всего делать сервис расчитанный на многомиллионный сайт. Правильный ответ конечно зависит от того кто его будет разрабатывать, то есть кто какой язык хорошо знает.

Но интересно было наткнуться на вот такую табличку, которая собственно показывает тенденции разработки highload структур.



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

Также кому интересна эта тема как и мне, рекоммендую периодически заглядывать на сайт
highscalability.com

п.с.спасибо что добрые люди подняли карму до 1, что позволило этот первый пост написать;)
п.с.2 какие то проблемы версткой.
Читать дальше →

Чтение wiki через icq – это реально

Reading time1 min
Views731
Хочу показать вам одного icq бота, с помощью которого можно читать статьи с сайта http://ru.wikipedia.org. Для начала нужно добавить бота в контакт лист, номер бота — 9199118. Далее отправив “help wiki” получаем подробную справку по команде.

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

Ставим QUAKE III под UBUNTU 7.10

Reading time2 min
Views14K
Q3Quake III — это наверно культовая игра, на которой выросли многие. После 2005 года, когда код движка стал общедоступным, появилась возможность играть в Q3 и под Linux. Эту возможность обеспечил ioquake3. Сегодня я постараюсь подробно рассказать как установить и настроить игру под Ubuntu на EEE PC.
Читать дальше →

Как разрабатывать идеи

Reading time2 min
Views1.1K
Привет!

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

Как разрабатывать идеи...

«Маршруты Санкт-Петербурга». Поиск транспорта в северной столице

Reading time1 min
Views1.1K
Маршруты Петербурга


Для тех, кто пользуется общественным транспортом северной столицы России, открылся сервис «Маршруты Петербурга».

В петербургском поисковике городского транспорта учитываются автобусы, троллейбусы, трамваи, маршрутки, метро и электрички.

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

Для тех, кто активно пользуется мобильными устройствами, есть PDA-версия «Маршрутов Петербурга».

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

Счастливого пути!

Color Browser — программа позволяет дизайнерам подбирать приятные палитры для сайтов.

Reading time1 min
Views7.8K


Интересная программа на технологии Adobe AIR. Суть программы Color Browser заключается в приятном подборе палитр для сайта или дизайна. Сделана программа как приложения к сайту ColourLovers (где можно скачать чужие палитры)

Скачать программу Adobe AIR можно на сайте Adobe а Color Browser от сюда.
После установки Adobe AIR запустите файл ColorBrowser.air

Другие приложения работающие на Adobe AIR можно посмотреть здесь.
Источник: mmaxis.info

Азбука хорошего разработчика. Книжки для чтения

Reading time2 min
Views3.6K
Часто разработчиков нужно направить, поскольку они не имеют понятия о том, что им нужно изучить для повышения своего уровня. В этой заметке я опишу источники знаний, в моем понимании, необходимые для этой цели. Пишу в порядке, в котором я их предлагаю читать.

Паттерны проектирования

Википедия — там, в принципе, на хорошем уровне все описано и приведены примеры на разных языках.
Базовая книга – классика:
«Приемы объектно-ориентированного проектирования. Паттерны проектирования» — читал книгу давно, и раза 3. Вам того же советую. Даст возможность понимать большое количество терминов, произносимых другими разработчиками.

Рефакторинг

«Рефакторинг. Улучшение существующего кода» — вероятно, эта книга сделала революцию в написании кода. Читается быстро и интересно. Методы рефакторинга должны отложиться в голове до конца жизни. Ваш код отныне будет лучше. В книге есть упоминание про юнит тестинг.
Читать дальше →

Монах и охотник

Reading time1 min
Views913
Однажды монах прогуливался по лесу. Неподалеку он заметил охотника, который целился в оленя. Монах подбежал к нему и стал умолять не убивать оленя.

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

Охотник задумался и не стал убивать оленя, опустив своё ружьё. Он посмотрел на монаха: тот был хорошо и аккуратно одет, имел прекрасные манеры и добрые черты лица, он ощущал, что от монаха исходит аромат блаженства и безмятежности.

В этот же миг охотник направил ружьё на монаха. Монах спросил его:

— Боже мой, что ты делаешь?!
— Ты сам сказал, таков закон кармы: если я убью тебя, то в следующей жизни буду монахом. Ты мне понравился.

20 типов страниц, о которых должен помнить каждый блоггер

Reading time7 min
Views1.3K
Problogger Дарен Роуз (Darren Rowse)Представляю вашему вниманию перевод статьи 20 Types of Pages that Every Blogger Should Consider известного блоггера Дарена Роуза (Darren Rowse) автора ресурса Problogger.net. Некоторые моменты я переводил не дословно, адаптируя под русский язык, иногда пересказывал своими словами, сохраняя при этом смысл. Также в тексте я оставил некоторые ссылки на сопутствующие посты автора с разъяснением тех или иных нюансов по теме. Все они, разумеется, содержат текст на английском языке. Итак, поехали.Используя WordPress, вы имеете возможность выбирать при публикации нового материала между типами размещения его как «пост» или «страница». Пост сразу располагается в самом верху страницы первой записью, в то время как страница является статичной и может быть вовсе не отображаться в блоге.Существует множество причин почему вы можете склонятся к тому или иному способу публикации, но сегодня хотелось остановиться немного на другом — страницах, которые есть в ProBlogger.net и могут послужить блоггерам хорошим инструментом для продвижении своих ресурсов среди разных групп людей. Некоторые из них, на мой взгляд, более важны, чем другие, но, тем не менее, все они были полезны в развитии блога.
Читать дальше →

Самые интересные стартапы в рунете – весна 2008

Reading time3 min
Views669
По роду своей деятельности, я регулярно провожу мониторинг интересных Web 2.0 стартапов в рунете. На этот раз я решил поделиться моим видением с хабрапользователями и рассказать Вам о самых ярких стартапах, запущенных весной 2008 года. Для каждого из стартапов мы коснемся возможных каналов монетизации и обсудим слухи об инвестировании.
Читать дальше →

Information

Rating
8,741-st
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity