• Числа, которые должен знать каждый программист
    +3
    $b = "$a", конечно, в корне меняет дело.

    $b = "$a" (1mb) = 1 024 204 ns
    $b = "$a" (0b) =        160 ns
  • Числа, которые должен знать каждый программист
    +11
    Хоть люди и минусуют этот комментарий, но я соглашусь. Зачем программисту на PHP знать скорость обращения к кэшу L1? Он им не может воспользоваться, ибо даже простой $a=1; это десятки(может сотни и тысячи) операций «под капотом». Уверен, что даже «открытие мютекса» в PHP это далеко не один десяток операций (ибо все равно PHP нужно резолвить $mutex_id — это ж не просто указатель на память, а название переменной).

    Далее, «Передача сообщения туда/обратно в одном дата-центре» — это мне кажется, сильно зависит от организации дата-центра. Какого размера сообщение, как соединены стойки, какое оборудование на пути, какова загруженность каналов, какая скорость сети?

    И что вообще такое «обращение к главной памяти»? Это так RAM нынче называется?

    Собственно эти цифры все вообще абсурдны при PHP программировании, запустите простой скрипт, который 100млн раз в цикле сделает примерно следующее: $b=$a; где $a будет либо пустой, либо равной 1МБ строке (по идее — это «чтение 1МБ из памяти» и замерьте ((microtime(1)-$start_microtime)/$number_of_loops) среднюю скорость выполнения.

    Результаты у меня (nginx/php-fpm):

    "$b=$a", при $a длиной 0 байт = 85ns;
    "$b=$a", при $a длиной 1 МБ (str_repeat(«x», 1024*1024)) = 79ns.

    Проверял несколько раз — да, чтение 1МБ из памяти быстрее происходит, чем чтение нуля байт!

    Собственно, почему так происходит я точно не знаю, но вывод один — среда выполнения PHP делает слишком много операций (и, возможно, внутренних оптимизаций), чтобы заниматься там какими-то предсказаниями по поводу операций чтения из кэша L1.

    Первые цифры полезны программистам на C (даже уже на Java думаю они менее полезны ибо там все же на виртуальной машине происходит выполнение).

    Большая часть остальных цифр полезна программистам, которые разрабатывают приложения, работающие более чем на 3 физических серверах (а это менее 1% программистов на PHP, я так предполагаю).

    99% программистов на PHP ради интереса можно знать, что:
    1. чтение с диска примерно в 100 раз медленней, чем чтение из памяти;
    2. даже простой mysql_query('SELECT 1') примерно в 1000 медленней, чем обращение к хэшу $array['item'].

    Почему ради интереса? Да потому что большей частью все равно самые сильные оптимизации в PHP — это правильно расставленные индексы в базе данных и кэширование в memcached. А те, кто создавали mySQL/memcached знали как правильно использовать L1, L2 и т.п. От того, что PHP программист будет это знать — его соединение с mysql/memcached не ускорится. А по сути mySQL(и аналоги) — это то, что нужно 99% PHP программистов.

    Статью бы надо переименовать в «Числа, которые должен знать каждый программист, работающий на близком к системному уровне»
  • Реклама в 4D
  • Реклама в 4D
    0
    … еще и на (двумерной) плоскости.
  • Реклама в 4D
    +7
    Ну не могут духи, стулья и т.п. добавлять D («измерение»), это добавляет чувств. Ну тогда пишите что это 4S («senses» — глаза, уши, нос — запахи — обоняние, попа — осязание, если там стулья вибрировали), а не 4D. Тем более что для нас все равно это 2S реклама (глаза, уши).

    4D могло бы быть если бы они здание физически взорвали и время назад пустили, это еще как-то можно было бы назвать 4D. Хотя технически, все-таки, время — не есть изменение.

    Вспоминается персонаж из «Трассы 60» (рекламщик): «Say what you mean, mean what you say.»
  • Забота о сохранности телефона
    +2
    Автор утверждает обратное направление смски… что нашедшие прислали куда-то смску хозяину.
  • Какую ОСь выбрать для небольшого Intranet хостинга (10 доменов, 100 уников в сутки)
    0
    «нормально владеем несколькими платформами», но «никогда не сталкивался именно с вэб-серверами со стороны администрирования»…

    Это как?.. Чем же Вы там владеете-то тогда? Веб это вообще одна из самых базовых вещей, которые на *nix/*BSD платформах требуется.

    По делу — абсолютно все равно какую поставите. У меня есть севера на FreeBSD, на Fedora и на CentOS — разницы не вижу (нюансы есть, глобальной разницы в том как работает — нет).
  • Превью сайтов прямо в поисковике
    +4
    Клево юзеру, хреново производителям контента.
  • Анаглифная 3D-фотография своими руками
    0
    На зеркалках (по крайней мере на Canon 350D) есть кнопка фиксирвания параметров, так что вручную не обязательно, просто надо кнопку нажать (на 350D — «звездочка»).
  • Взгляд на современные системы защиты от спама веб-форм
    0
    А мне, как посетителю от этих нюансов какая разница? Она просто не работает, да и все. А уж причина мне (как посетителю) мало интересна.
  • Взгляд на современные системы защиты от спама веб-форм
    0
    Вот так это выглядит с отключенным флешем. Крутится и никакого HTML5 там не показывается.
  • Взгляд на современные системы защиты от спама веб-форм
    0
  • Взгляд на современные системы защиты от спама веб-форм
    +1
    Вот у меня и стоит блокиратор флеш — я вошел на их сайт и наблюдал крутящийся диск… пока не включил флеш и рефреш не нажал.
  • Новые технологии в накрутке? Мошенничество?
    –2
    Akismet использует Akismet API, который не стыришь. Кроме того плохо работает — не буду вдаваться в подробности, но очень много хороших комментариев не по делу в спам отправляет — у меня давно на всех блогах отключен.
  • Симуляция донейт в он-лайн игре
    +1
    В общем-то, я про производство и не имел в виду, я же сказал "купили вир.табл." или Вы про что?

    Просто очень абстрактно все описали, я только вот к этому комментарию (прочитав почти все комментарии и топик несколько раз) понял о чем вообще речь шла (что и описал выше).

    Ссылки (все на английском) — честно говоря, давно было, не помню — все ли выводы только оттуда:
    thefreelancery.com/2010/04/the-scariest-pricing-idea-ever-that-works/
    news.ycombinator.com/item?id=1279660 (обсуждение ссылки выше, много людей приводят аналогичные-противоречащие разумные доводы)
  • Симуляция донейт в он-лайн игре
    +3
    Так, то есть эксперимент был такой:
    В онлайн игре Вы:
    1) купили виртуальных таблеток на сумму X монет (я так понимаю от 25 до 33 монет, исходя из оптовой цены);
    2) стояли в игре и кричали «бесплатная раздача таблеток»;
    3) люди брали бесплатную таблетку и кто хотел — отдавал Вам что-то назад и/или благодарил;
    4) в конце эксперимента у Вас стало 37 монет.

    Я так понял?
    Неужели это нельзя было так и написать, вместо всех этих теоретических изысков?..

    Проблема в том, что в реальный мир это не переносится. Подобные эксперименты были среди фрилансеров и опубликованы. Незнакомым людям (клиент, пришедший первый раз) предлагали платить столько сколько они хотят за работу (не просто платить или нет, а ТОЛЬКО ПЛАТИТЬ, но столько сколько считают правильным). Результаты были унизительные, более чем в 10 раз, кажется, ниже рыночной стоимости.

    Я боюсь представить какой была бы эта цифра если людям сказали бы, что можно и не платить («донейт»).

    С другой стороны, со знакомыми людьми (старыми и проверенными клиентами) это срабатывало лучше. В некоторых случаях фрилансеры получали в 2-3 раза большую оплату.
  • Симуляция донейт в он-лайн игре
    +8
    Я лично пытался понять, но столько абстрактных терминов, что к концу статьи чувствтуешь себя в вакууме со сферическими лошадьми по всему радиусу… «донейт», «таблетки», «неделимые единицы денег», «1 таблетка в одни руки в день», «бесплатная раздача таблеток», но заплатило 11 человек? «остановим вирус», «спасибо», «рыночная стоимость», «заказы»? «к концу эксперимента у меня было 37 монет»??

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

    Я просто к тому, что у Вас якобы 11% людей сделали пожертвование, когда в реальном мире есть статистика около 1 человека из 5000 делают пожертвования реальными деньгами (часто и еще хуже). Вы говорите они заплатили больше, в реальном мире исследования показывают, что большинство людей будут платить меньше, если им позволить. Что, в общем-то, сильно противоречит Вашему выводу «не стоит боятся делать что-то бесплатно: вероятность, что вам не заплатят за вашу работу, не так высока.»

    То есть если его исправить на «вероятность того, что Вам не заплатять ВИРТУАЛЬНЫМИ ВЕЩАМИ не так высока» — может быть и имеет право на существование.

    Кроме того, что это за «100 человек»? У Вас в игре всего 100 человек? Тогда они фактически все — Ваши почти друзья, тогда в чем эксперимент? Друзья поддерживают друзей. Даже если это им и стоит денег.
  • Впервые в Рунете: гендерные подсказки
    0
    я думаю что они просто пытались избежать фразы «половые подсказки» и «сексуальные подсказки» )
  • Свободный Android — золотая жила для Google
    +1
    А все, понял, не проснулся :)
  • Свободный Android — золотая жила для Google
    0
    «Рынок мобильных устройств, работающих в Интернете, [...] вырос за год почти на 3%, составив 4% от общего количества устройств, имеющих выход в Интернет»

    Это как это? По-моему доля «рынка мобильных устройств, работающих в Интернете» должна равнятся 100% доле рынка «устройств, имеющих выход в Интернет», не?
  • Свободный Android — золотая жила для Google
    +3
    Рынок Android еще юн по сравнению с iPhone, но уже неплохо догоняет.
  • Платные курсы для интернет-мошенников
    +2
    Так в некоторых кругах слово «хакер» до сих пор очень уважительное (и никак не связано с людьми, ломающими компьютеры и софт) news.ycombinator.com/
  • Платные курсы для интернет-мошенников
    +1
    Вот, к сожалению, это и расстраивает в современном Хабре — желтуха в духе «интересно почитать», потребительство, скандалы, сенсационализм… Раньше (годы назад) это было сообщество, где каждый топик был чем-то, что ты реально мог использовать и применять, что-то, что открывало новые технологии, что учило и улучшало… А сейчас? Потребительство (обзоры всего подряд, с помощью чего можно будет жрать, срать, ржать), желтуха, скандалы и скрытый-открытый пиар… На десяток бесполезных топиков один полезный. Но это начинает уже переходить грани — уже начинают во всю публиковать не просто бесполезные, а опасные, подталкивающие десятки тысяч читателей к преступлениям (Впрочем, этот процесс уже не остановить — болезнь любого увеличивающегося в аудитории сайта — так было с Digg, так было с Reddit, также будет с Хабром).
  • Платные курсы для интернет-мошенников
    +2
    А какой толк писать о вот этом? Ну повозмущались, покачали головами, постучали кулаком по столу, ну позвали жену, показали пальцем, ну повозмущалась еще и она… все поохали… и?.. чего добились-то?..

    Вот и не надо Хабру превращаться в «телек».
  • Платные курсы для интернет-мошенников
    0
    Источники фактов забыл указать: Роберт Чалдини «Психология влияния».
  • Платные курсы для интернет-мошенников
    +5
    Цель не в помощи, но достигает пост именно этого. Как видите — народ уже в избранное добавляет.

    Известный факт: «Однажды в Йеллоустоунском парке повесили табличку: <Ежегодно у нас воруется столько-то древесины>, после чего кражи древесины утроились, потому что люди думали, что брать древесину — норма (другие же так делают). Табличку заменили.»

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

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

    Вот и получается — хотели повозмущаться, а создали рекламу.

    О подобных вещах нужно писать заявления в милицию и отдел К, а не топики ненависти.
  • Платные курсы для интернет-мошенников
    –4
    Зачем это рекламируется на Хабре?..
    Вы думаете им без Хабра мало клиентов? Нужно помочь, привлекая к ним внимание?

    Masterkey: «а почему никто ссыль не приводит?»
    А Вы сами подумайте почему.
  • Построение SIFT дескрипторов и задача сопоставления изображений
    0
    Отлично, только там еще «использосвание» поправьте.
    Добро пожаловать, кстати :)
    Да и замочек с топика лучше снять («доступен только подписчикам блога») — тогда больше людей прочитает.
  • Построение SIFT дескрипторов и задача сопоставления изображений
    +3
    Единственное, что про SIFT должно бы сразу быть сказано, это то, что алгоритм запатентован и использовать его в коммерческих целях нельзя (без согласования с David G. Lowe).
  • Промышленный робот Panasonic “Parallel link” способен учиться новым движениям
    +2
    Ни секунды не сомневался что этот скрин в коментариях будет :)
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    +1
    Выглядит интересно, но опять же задам глупый вопрос — поддержка document.write у скриптов загружаемых таким образом? :) Это именно та проблема, которую я и решал — document.write. Загрузить скрипт асинхронно — проблемы нет. Загрузить скрипт чтобы он писал куда надо — вот это проблема! (была :) )
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    +1
    Да мне не жалко. Единственное назову ее extsrc.complete(), чтобы не путались люди с jquery.ready(). Просто если назову ready — будут думать что она при рендеринге запустится (как в jquery).

    В репозитории:
    code.google.com/p/extsrcjs/
    extsrcjs.googlecode.com/svn/trunk/extsrc.js

    Изменения:
    code.google.com/p/extsrcjs/source/diff?spec=svn8&r=8&format=side&path=/trunk/extsrc.js
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    0
    зараза хабр при ctrl+v отправил комментарий

    src=jquery + ее плагины (все в одном файле)
    extsrc=20 виджетов
    inline=ваш скрипт

    тогда он запустится еще до того как соц.виджеты начнут грузится (подгрузка jquery чуть подтормозит страницу)
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    0
    Плохая это идея для JQuery, представьте такую ситуацию:

    extsrc jquery
    extsrc 20 социальных виджетов
    extsrc ваш скрипт

    «ваш скрипт» не запустится пока все 20 виджетов не загрузится — куда лучше

  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    0
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    0
    разница и правда интересная :) правда extsrc выглядит в этом случае даже лучше.
    спасибо за замечание — все равно, мне, кажется, это «исправить» на незакрытый тэг не удастся. :)
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    0
    все же я лучше оставлю insertBefore — надежнее, а разницы во внешнем виде никакой не будет.
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    0
    собсна — должно решить хоть часть проблем:
    code.google.com/p/extsrcjs/source/diff?spec=svn3&r=3&format=side&path=/trunk/extsrc.js
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    0
    А вот 1. все же не понял. То есть я понимаю, я никак отличия понять не могу — в чем разница того, что произойдет при применении extsrc и просто src при таком d.wr?
  • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
    0
    Ну вот я ж про надежность тут и говорю — а всегда ли будет parentNode и всегда ли nextSibling будет?