Статьи

Подкаст SitePoint № 89: Подкаст года

Эпизод 89 подкаста SitePoint теперь доступен! На этой неделе ваши ведущие — Патрик О’Киф ( @iFroggy ), Стефан Сегрейвс ( @ssegraves ), Брэд Уильямс ( @williamsba ) и Кевин Янк ( @sentience ).

Скачать этот эпизод

Вы также можете скачать этот эпизод в виде отдельного файла MP3. Вот ссылка:

  • Подкаст SitePoint № 89: Подкаст года (MP3, 44,1 МБ, 48:11)

Резюме Эпизода

Вот темы, затронутые в этом эпизоде:

  1. Мы подкаст года!
  2. Google исправляет большую дыру в безопасности
  3. Онлайн-книга Google для новичков в Интернете
  4. Улучшение воспринимаемой производительности с помощью спиннеров
  5. Опрос: в чем худшая ошибка MySQL?
  6. Всплывающие подсказки с клавиатуры: почему бы и нет?
  7. Обозреватель Internet Explorer 9 Обман

Просмотрите полный список ссылок, указанных в шоу, по адресу http://delicious.com/sitepointpodcast/87 .

Host Spotlights

Показать стенограмму

26 ноября 2010 года: устранена большая дыра в безопасности Google, как не все счетчики одинаковы, и Internet Explorer 9 обманывает тест.

Мы сделали это, ребята! Мы подкаст года!

Брэд: Yay!

Кевин: Согласно .net Magazine , я поехал в Лондон и поехал на церемонию награждения, и я был там с Карном Бродом, продюсером наших интервью, и да, это было потрясающе. Мы выступили против The Big Web Show, которое является одним из видеоподкастов года и заслуженно заслуживает Джеффри Зельдмана и его соведущего Дэна Бенджамина, они устраивают действительно интересные интервью-шоу каждую неделю. Но, да, мы победили в категории аудио, ребята! Поздравляю.

Патрик: Итак, нарисуй для нас картину, Кевин, дай нам визуальную картину. На что это было похоже?

Брэд: я представляю, как Оскар или что-то в этом роде. Как какой-то большой бальный зал!

Патрик: Как это было, как это круто? Сделайте это драматичным.

Кевин: Подиума не было, но я думаю, что они покончили с подиумом на Оскаре некоторое время назад. Он проводился в танцевальном клубе Ministry of Sound в Лондоне, так что на южном берегу Темзы недалеко от Ватерлоо, если вы знаете Лондон, именно там находится Министерство звука, по-видимому, этот культовый танцевальный клуб. У меня в офисе есть несколько фанатов музыки, которые завидуют тому, что я собираюсь провести вечер в знаменитом Министерстве звука; Я буду честен с тобой, это просто выглядело как танцевальный клуб для меня.

Патрик: О!

Кевин: Но ботаники залились, и примерно в 7 часов они немного отказались от музыки, и комедийный комик, который очень хорошо известен в Англии, начал исполнять свои обязанности, и я даже не знаю, как его зовут. Я даже не знаю, кто этот парень, но все местные жители говорили: «О, он веселый! Он все время на телевидении, мне нужно сфотографироваться с ним, потому что моя жена такая большая фанатка! »Кстати, прямая цитата из нашего продюсера Карна. И поэтому он подошел, и категория за категорией выкрикнула, ну, в общем, диктора, который был в ПА, который объявил кандидатов. У них было большое видео, сделанное на большом экране позади него, которое проходило через кандидатов и показывало либо скриншоты, либо фрагменты логотипов и тому подобное, просто своего рода презентация в виде анимации, демонстрирующая каждого из кандидатов в каждом из них. категории, а затем они бросили обратно к ведущему, который объявил победителя. И да, Карн и я — категория подкастов была самой первой категорией ночи, они назвали наше имя и Карн Броуд, и я вышел и поблагодарил толпу. Было несколько приветствий, когда подкаст SitePoint был назван среди номинантов; У нас определенно было несколько поклонников в аудитории, так что это был действительно веселый вечер. И после этого нас как победителей подтолкнули в VIP-зал, который между вами и мной на самом деле был «стендом перед баннером спонсоров и сфотографировался для их журнала». Но да, мы должны расслабиться и пообщаться с другими победителями, такими как Джеффри Зельдман и Фарук Ате? мы уже упоминали в этом подкасте и являемся автором Modernizr , который, я думаю, выиграл проект года с открытым исходным кодом, и несколько других местных жителей, Джереми Кит, которого вы, возможно, знаете в Twitter как @adactio , присутствовали на нем, потому что его цифровое агентство было номинировано, Clearleft , было номинировано на Цифровое агентство года, но Джеффри Зельдман также получил это с Happy Cog . На самом деле Зельдман выиграл не менее трех различных категорий наград; он был человеком ночи наверняка.

Патрик: Я люблю нас и все такое, я имею в виду, что мы крутые и все такое, но я должен сказать, что после просмотра первоначального списка кандидатов я был немного напуган, насколько наши шансы, но не сказать, что мы не Производить качественное шоу, потому что мы делаем, и это здорово, что меня удостоили чести, но я думаю, что не было снято видео, а?

Кевин: Нет. Было несколько фотографий; позади толпы был фотограф с длинным объективом, который фотографировал людей, принимающих свои награды, но они не упомянули об этом победителям, поэтому мы не знали, где искать фотографии, так что я думаю, что могла бы быть фотография Карна и меня, вроде бы, стоящего где-то перед трофеем где-нибудь, если я обнаружу, что дам вам знать. Награды официально объявляются на thenetawards.com , это тот же сайт, на котором мы просили вас пойти и проголосовать за нас ранее в этом году, теперь он просто перечисляет победителей в каждой категории, но я думаю, что они собираются сделать их большой всплеск в следующем выпуске их журнала, то есть номер 210, который, я полагаю, выйдет в следующем месяце. Поэтому я думаю, что Карн отправит мне копию этого и, надеюсь, мы увидим наши имена в печати.

Брэд: Я думаю, мы должны поблагодарить Пола Боага за то, что он отошел в сторону и позволил нам на самом деле победить в этом (смех).

Кевин: Он выиграл в прошлом году, и я думаю, что да, просто спокойно была отдельная категория видео и аудио, потому что, да, шоу Зельдмана и Бенджамина — это классный акт, и это было бы действительно жесткой конкуренцией. Но, да, спасибо .Net Awards, я намерен впредь называть это «отмеченным наградами подкастом SitePoint».

Патрик: У меня приятное звучание.

Кевин: Без лишних слов давайте углубимся в наши истории, потому что у нас есть немного, чтобы пройти. Итак, Брэд, почему бы тебе не увести нас?

Брэд: Итак, на прошлой неделе у Google был небольшой неловкий момент: настоящий 21-летний армянский разработчик обнаружил небольшую дыру в безопасности в скрипте API Служб Google, и, по его словам, он действительно несколько раз связывался с Google, пытаясь сообщить об этом. Уязвимость так и не смогла пройти. Итак, что вы можете сделать дальше? Хорошо, создайте сайт и покажите всем, что вы нашли. Таким образом, он фактически создал сайт на BlogSpot, на котором размещалась эта страница и сценарий, который он написал, и если вы посетили этот сайт и вошли в Google или Gmail в настоящее время, любой тип сайта Google, веб-сайт немедленно захватит ваш Google по электронной почте и отправить вам письмо и сказать: эй, я только что получил ваш адрес электронной почты. И это так же просто, как эксплойт, но, как вы можете себе представить, это довольно большой эксплойт, особенно для кого-то вроде Google, чтобы его пропустить. Так что это была действительно большая история; К счастью, как только Google увидел веб-сайт, они закрыли сайт, и, по их словам, они исправили эксплойт, и разработчик, на мой взгляд, сделал, пожалуй, лучшее, что он мог сделать, кроме как просто сообщить об этом. Так как он не получил ответа, он фактически создал сайт, чтобы показать его, но он никому не сказал, что это было, он не выпустил, это то, как вы это делаете, это то, что вы делаете, он на самом деле просто добрый of of продемонстрировал это с функциональной точки зрения, что, я думаю, немного лучше, чем то, что я видел, что многие другие люди делают, когда находят подвиги, поэтому определенно снимаю шляпу перед ним. Но это было немного страшно, особенно Google, такой большой сайт, как Google, я имею в виду, я уверен, что у всех нас, кроме Патрика, есть хоть что-то в Google, которое мы используем.

Патрик: Даже Патрик.

Брэд: Хорошо, даже Патрик. Но видя такую ​​большую уязвимость, которая ускользнула от Google, заставит вас немного волноваться.

Кевин: Да. Я посмотрел на API Google Apps Script , и фактически до того, как Google исправил его, никто даже не знал, какой API он использует. Как вы говорите, он был очень неравнодушен к тому, как именно ему удалось это сделать, и я полагаю, что он был вполне ответственен за него. Но как только Google исправил проблему, они опубликовали небольшую заметку о том, что их первым ответом было отключение сайта от BlogSpot; Очевидно, что BlogSpot является платформой Google для ведения блогов, поэтому они полностью контролируют этот сайт, но из того, что я прочитал, я предполагаю, что этот эксплойт не зависел от страницы, размещаемой на BlogSpot. Я думаю, что он, вероятно, мог бы поставить это где угодно. Но да, ответ Google гласит: «Мы быстро исправили проблему в API скриптов Google Apps», и просто заявили, что все внезапно точно знали, какой API, какая часть экосистемы Google содержит ошибку. Итак, что касается Google, я не думаю, что они должны быть такими открытыми, но я рад, что они были, потому что этот API скриптов Google Apps является тем, с чем я не был знаком заранее. Далее они сказали: «Эта уязвимость могла позволить отправлять электронные письма пользователям Gmail без их разрешения, если они заходили на специально разработанный веб-сайт во время входа в свою учетную запись. Мы немедленно удалили сайт, который продемонстрировал эту проблему, и вскоре отключили эту функцию. Мы поощряем ответственное раскрытие потенциальных проблем безопасности приложений по адресу security@google.com ». Это заключительное замечание говорит мне о том, что они говорят: да, мы знаем, что он сказал, что пытался связаться с нами и не получил ответ, ну, он не прошел через правильные каналы. Похоже, они намекают на то, что, если бы он перебросил строку на этот особый адрес электронной почты, они бы сразу поняли. Как вы думаете, вы покупаете этот бред?

Брэд: Я не знаю, я имею в виду, что разработчика зовут Вахе Г., и он не совсем уверен в том, как он связался с Google, он просто сказал, что связался с Google несколькими различными способами, и они просто не отвечают на электронные письма. Итак, вы знаете, конечно, если вы просто отправите электронное письмо в определенные области Google, вам, вероятно, будет очень трудно разобраться. Так, но было бы лучше, если бы он на самом деле сказал, что я написал это, это, это и это, и никто не ответил, но на самом деле он не сказал этого, так что трудно сказать. Я имею в виду, я знаю, что вы можете только представить количество электронных писем, которые Google получает в день через свои различные сервисы, так что, я уверен, было бы легко потерять электронную почту или две.

Патрик: Если вы пользуетесь Google «Google Security», как это ни странно, и не говоря уже о том, что они не могли изменить это, потому что, очевидно, Google контролирует индекс, но если вы воспользуетесь Google, я впервые попал сюда, первый сайт в списке google.com/ corporate / security.html, а на самом деле в описании результатов поиска указан адрес электронной почты security@google.com, поэтому, кажется, вам будет сложно пропустить его, если вы все равно будете искать его через Google.

Кевин: Да, я вижу это! Мой первый результат — блог о безопасности Google Online по адресу googleonlinesecurity.blogspot.com, и последний раз он обновлялся в четверг, 11 ноября, поэтому они не говорили об этой конкретной уязвимости в блоге безопасности Google Online. Но я думаю, что это больше о помощи …

Патрик: Общая безопасность в Интернете.

Кевин: Да, да, именно так. Итак, этот API, этот API скриптов Google Apps, в котором была уязвимость, я взглянул на документацию по нему, и это действительно очень похоже на — я не знаю, слушали ли вы достаточно долго, чтобы вспомнить расцвет Microsoft Office, и когда все это сделали … как было много компаний, чья отчетность зависела от сложных комбинаций VBScript, работающих в чем-то вроде Microsoft Excel или что-то в этом роде. Но эти скриптовые языки работают внутри ваших офисных приложений. Итак, API скриптов Google Apps на самом деле является версией Google Apps, поэтому, если Google Apps является вашим офисным пакетом в облаке, то API скриптов Google Apps — это то, что позволяет вам писать эти скрипты, которые запускаются в вашем офисном пакете в облаке. Поэтому вместо того, чтобы быть похожим на JavaScript, который запускается в вашем браузере, это сценарии, которые вы пишете и отправляете в Google, а затем Google запускает их на своих серверах для документов и данных, которые вы храните в своей учетной записи Google. И похоже, если бы мне пришлось, учитывая имеющиеся данные, догадаться, что разработчик обнаружил, что один из API-интерфейсов, одна из частей Google Apps, к которой вы можете получить доступ через этот API-интерфейс, — это ваша адресная книга Gmail. И я не знаю, смог ли он каким-то образом использовать эту часть API, чтобы получить адрес текущего пользователя, вошедшего в систему, или даже что-то намного проще, что API действительно раскрыл имя вашей учетной записи Google и что он из это может угадать ваш аккаунт Gmail и отправить вам электронную почту, что-то вроде этого. Но тот факт, что любой старый сайт, например, страница блога BlogSpot, может сделать это с помощью JavaScript, немного пугает, поэтому я рад, что они это исправили.

Брэд: Это довольно забавно, если вы посмотрите на — у TechCrunch есть скриншот того, как выглядел веб-сайт до того, как его сняли, и на самом деле на нем размещена реклама Google (смех). Мало того, что есть эксплойт, но, по крайней мере, там есть реклама Google.

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

Патрик: Никто даже не хочет отвечать на ваше письмо.

Стефан: Пока тебя не взломали.

Кевин: Да. Еще одна история Google — это то, что я узнал из новостной рассылки SitePoint Tech Times на прошлой неделе от Луиса Симоно, нашего главного технического редактора здесь, в SitePoint, и это комикс от Google под названием « 20 вещей, которые я узнал о браузерах и Интернете» . Не комикс, просто онлайн-книга, извините, я просто привык к тому, что Google выражает все, что они говорят, в форме комиксов, кажется, что они этим занимались некоторое время. Но это сайт 20thingsilearned.com, где 20 — это число, 20thingsilearned.com, и это очень приятная презентация онлайн-книги, и это книга, которая … Вы помните, когда мы говорили о той истории, где что менее восьми процентов людей, остановившихся на улице в Нью-Йорке, знали, что такое веб-браузер?

Брэд: Это книга, которую они должны читать?

Кевин: Да, похоже, что Google принял это близко к сердцу и все в порядке, ну, мы напишем книгу об этом. И так, с точки зрения непрофессионала, он объясняет с помощью действительно очаровательных иллюстраций художника по имени Кристоф Нейманн, как работает сеть. И вы можете пролистать эту штуку, и если вы поиграли с ними, вы знаете, что устройство для чтения электронных книг работает на таких вещах, как Apple iPad, где вы получаете очень тактильный эффект скручивания страницы, ну, это то же самое, что Вы получаете такие вещи. Но на многих из них иллюстрации анимированы, и все они сделаны с помощью веб-технологии HTML5, и это довольно впечатляет. Я заметил одну вещь в прологе, о которой они говорят: вы можете узнать, что произойдет, если ваш ноутбук столкнется с грузовиком, и я пролистал эту страницу, чтобы выяснить, и оказалось, что это в главе под названием Облачные вычисления, где вам сообщают, что все в порядке, если ваш ноутбук забит грузовиком, если вы храните все свои данные в облаке с помощью служб Google. (Смех)

Патрик: Кто-нибудь узнал об этом от доктора Сьюза, потому что он указан как «Одна вещь», «Две вещи», «Три вещи» и так далее, и у них есть маленькие парни, одетые в красное.

Брэд: Да, как только я увидел Thing One, это первое, что пришло мне в голову, особенно с графикой.

Патрик: Идея облачных вычислений была интересной, чтобы прочитать эту часть о том, что — нет, это не облачные вычисления, а какой раздел, это был другой раздел, в котором говорилось о том, как хранить ваши данные в облаке, и как это было лучше для безопасность. Я думаю, что он использовал приложения, веб-приложения, насколько он безопаснее, потому что вам не нужно ничего скачивать, и я подумал, что это один из способов взглянуть на это, я думаю. Ты знаешь меня и Облако, так что да.

Брэд: Мне действительно нравится, что Google сделал немало таких маленьких сайтов на различные темы, но они действительно — я имею в виду, в конце концов, они действительно демонстрируют некоторые действительно интересные вещи HTML5 здесь.

Кевин: Да, это правда. Если вы не заметили его, попробуйте щелкнуть небольшой выключатель лампочки в правом нижнем углу страницы, вы можете переключить страницу в темный режим, если вы читаете в темноте, и она действительно хорошо затухает. Это все очень гладко; Я не видел закулисного кода, чтобы увидеть, насколько он доступен, например, если у вас отключен JavaScript. На самом деле, я попробую это сейчас, я отключу JavaScript и перезагрузлю эту страницу и посмотрим, что произойдет.

Патрик: И когда соединение Кевина с Skype оборвется, у нас будут большие проблемы.

Кевин: Я получаю полностью пустую страницу. Это не приятно. Ладно. С отключенным JavaScript вы просто получаете полностью пустую веб-страницу, так что это не очень весело. Даже если вы посмотрите на разметку страницы, там много контента. Похоже, что в наши дни в Интернете требуется JavaScript, это одна из 20 вещей, которые я узнал об Интернете, прочитав эту книгу. Приятное прикосновение, которое я нашел, это то, что если вы уйдете с сайта и вернетесь, он предложит вам возобновить чтение с того места, на котором вы остановились в прошлый раз, очень приятно.

Улучшение воспринимаемой производительности сайта с помощью Spinners — это запись в блоге YUI Blog. Опять же, это из информационного бюллетеня Tech Times, Луи Симоне составил хороший список того, что нового в веб-ссылках , и я взял пару из них для сегодняшнего шоу, потому что они действительно нажали мои кнопки. И эта история объясняет, как довольно хорошо известно, что если вы хотите заставить своих пользователей ждать, вы хотите показать им какую-то анимацию или дать им что-то на что посмотреть, надеюсь, что-то, что движется, будь то индикатор выполнения или Если у вас нет способа точно определить, какой прогресс достигается. Но если вы дадите им что-то, на что можно взглянуть, что-то движущееся, вы дадите им ощущение, что что-то происходит, и это заставляет ожидание чувствовать себя менее долгим. Ну, похоже, Yahoo! провел здесь какое-то исследование, или, по сути, Петр, как они говорят, выступал на лондонской конференции Ajax на этой неделе: «Петр, один из создателей довольно хорошего jsfiddle.net, говорил о прядильщиках, довольно распространенном« я делаю » индикатор «что-то» и то, как пользователи их воспринимают ». И он говорит, что в зависимости от того, как именно он отображается, он может по-разному воспринимать время, которое проходит, и сколько времени это занимает. Ребята, вы когда-нибудь испытывали это, когда вы смотрели спиннер и чувствовали, что время медленно ползет, потому что он просто делает одно и то же снова и снова?

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

Кевин: Я играю с примером, который у них здесь, и в этом опросе, который он провел, он показывает две кнопки, и вы можете нажать «загрузить» и «B», а когда вы нажимаете «загрузить», он показывает небольшой счетчик прогресса, а затем завершается. И если вы нажмете кнопку загрузки B, он сделает то же самое, но только с немного другим представлением. Прочтите еще раз из поста в блоге здесь: «Когда вы нажимаете кнопку, перед показом счетчика происходит задержка, а затем короткое случайное время спустя отображаются результаты, затем вы нажимаете другую кнопку, происходит то же самое, а затем вы говорите, какая из них быстрее ». И в соответствии с результатами« При небольшой задержке отображения счетчика пользователи чувствуют, что что-то происходит быстрее, но если вы слишком долго ждете, они начинают думать, что что-то сломалось, 0,4 секунды кажутся оптимальной задержкой ». Если вы позволите им щелкнуть, а затем, прежде чем отобразить счетчик, а не отобразить его сразу, подождите 0,4 секунды, а затем отобразите счетчик. Это похоже на то, что когда вращающийся элемент появляется, мозг пользователя перезагружается и уходит, хорошо, я вижу счетчик, теперь я начинаю ждать, а затем он теряет те первоначальные 0,4 секунды, которые вы ждали, и заставляет все это чувствовать себя немного быстрее, очень интересно.

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

Патрик: Используйте это знание сегодня.

Кевин: Да, именно так. Что-то, что мы делали в прошлом новом шоу, которое я хотел сделать снова на этой неделе, это взглянуть на опрос SitePoint, потому что мне было очень весело, когда мы говорили о том, что это было, мертв ли ​​Silverlight или нет. И на этой неделе проводится опрос SitePoint, и с этим связана целая запись в блоге и ветка форума, но я подумал, что мы могли бы просто оторваться от этого, и это специально для разработчиков среди нас, так что, Брэд, обратите внимание. Какова, на ваш взгляд, худшая ошибка MySQL: A) не использовать Innodb, B) не использовать PDO или MySQLi, C) не использовать Input Validation или D) не использовать UTF-8?

Брэд: Для меня я бы, без сомнения, сказал бы «Проверка правильности ввода». Я имею в виду, что если вы не проводите дезинфекцию какого-либо пользовательского ввода прямо в базу данных, вы просто запрашиваете инъекцию SQL. И это то, что я помню, когда я изучал классический ASP, и я был очень активен в классическом разделе ASP на форумах SitePoint. Я все еще учился, и однажды один из моих более крупных сайтов был взломан, как будто вся информация была стерта, а сообщения «тебя взломали» повсюду, и я не мог на всю жизнь понять, почему, и это день Я узнал об SQL-инъекции, и у меня был этот поток, который я добавил в закладки, и я смотрю на него, возможно, один раз в год, потому что он возвращает некоторые, ну, не очень хорошие воспоминания, но, тем не менее, воспоминания. И это были буквально люди на форумах, которые проводили меня до конца. Это инъекция SQL, вы ничего не проверяете в своих запросах. Таким образом, с того дня это всегда было действительно ключевым аспектом всего, что я разрабатываю, чтобы быть уверенным, что это — входные данные проверены настолько строго, насколько это возможно.

Патрик: Это звучит как идея охоты на мусор для слушателей подкастов SitePoint, найдите эту ветку и добавьте ее в комментарии (смеется).

Брэд: Это там. Это, вероятно, с 2001, 2002, может быть.

Патрик: Нет, никаких намеков!

Брэд: Ой, прости, это там.

Патрик: Хорошо, хорошо, вот и все.

Кевин: Стефан, что ты думаешь?

Стефан: О, я должен согласиться с Брэдом. Я не думаю ни о каких других, я имею в виду, что они являются ошибками, но я бы не сказал, что они катастрофические, такие как проверка входных данных, отсутствие проверки входных данных. Я имею в виду, я согласен с Брэдом, это худшее, что вы можете сделать.

Патрик: Третье. В-третьих, Кевин, в-третьих.

Кевин: О да, вы думаете, входной санкционирование также. Ну, если честно, я не уверен, что Input Validation квалифицируется как ошибка MySQL.

Стефан: Да ладно, семантика.

Брэд: О, мальчик, это вопрос с подвохом? Он полностью подставил нас для этого.

Кевин: (смеется)

Патрик: У вас есть доступ к бэкэнду SitePoint, отредактируйте опрос. Нет, я просто шучу.

Кевин: Да, я мог, я мог. Ну, да, вы знаете, что я имею в виду, хотя; Проверка ввода — это то, что вы делаете на уровне языка сценариев, прежде чем попасть в свою базу данных. И да, я бы полностью согласился с тем, что если мы просто говорим о проблемах, которые вы можете создать в веб-разработке, не проверяя ваш вклад, то это довольно большая проблема, и вы окажетесь на первой странице TechCrunch, как Google сделал на этой неделе, потому что люди находят способы вставить на ваш сайт то, что вы не хотели или не ожидали, и часто приводят к катастрофическим результатам. Но да, я бы назвал это проблемой сценариев, в то время как другие из них, конечно же, Innodb — предпочтительный движок базы данных для использования с MySQL, но это не по умолчанию. Когда вы впервые настраиваете MySQL по умолчанию, если вы создаете новую таблицу и не говорите ей, какой тип механизма использовать, он будет использовать более старый механизм MyISAM, который действительно быстр для выполнения запросов select только из коробки, просто Производительность необработанных запросов на выбор действительно хорошая, но как только ваши запросы усложняются или вы выполняете много записей в вашей базе данных, вещи замедляются, особенно потому, что MyISAM не поддерживает такую ​​вещь, как блокировка на уровне строк, где она может записывать одну запись в таблице при выборе другой части таблицы. Именно благодаря таким высокотехнологичным функциям Innodb на практике работает намного лучше, и поэтому, да, мы несколько раз случайно ломали нашу конфигурацию MySQL, и мы удивлялись, почему конкретное приложение неожиданно замедлилось до сканирования, и это потому, что Таблица сессий, которая обновляется для каждого запроса страницы на нашем сайте, внезапно становится таблицей MyISAM, она замедляется.

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

Кевин: Да, да.

Патрик: Это всегда потопит лодку.

Кевин: PDO и MySQLI, это те особенности PHP, которые улучшают работу с базой данных MySQL, они являются более современным API, и поэтому я бы сказал, что вам, вероятно, следует использовать что-то подобное, но это не так уж сложно. если нет UTF-8 просто означает, что вы размещаете большее количество символов и правильно храните их в своей базе данных, тогда как, опять же, по умолчанию вы получаете из коробки с MySQL то, что они используют набор символов Latin-1, который не знает об этих вещах например, кавычки и тому подобное, и поэтому, когда они сохраняются в базе данных, они сохраняются и извлекаются правильно, но ваша база данных не знает, с чем имеет дело, поэтому это не идеальная ситуация. Давайте посмотрим на результаты здесь, и, похоже, сообщество SitePoint согласилось с вами, ребята, потому что Input Validation выиграла с 58% голосов, Innodb 12%, PDO и MySQLI 12% и UTF8 18%. Но, да, похоже, что никто не заботится о семантике (смех), проверка входных данных — это достаточно большая проблема, и если у вас есть такая проблема, то это проблема всего, что вы делаете. Хорошо, входная проверка выигрывает. Подтвердите ваш вклад мальчиков и девочек.

Почему подсказки не запускаются клавиатурой? Это вопрос, поднятый Джеймсом Эдвардсом, частым блоггером для sitepoint.com, и он хорошо известен как гуру доступности. И в этом посте на сайте sitepoint.com он задается вопросом, должны ли подсказки, которые вы видите, когда наводите курсор мыши на объекты, также должны появляться, когда вы нажимаете на них с помощью клавиатуры. Что вы думаете, ребята?

Патрик: Я на самом деле не вкладываю вещи с моей клавиатуры, кроме текстовых полей, так что я не думал об этом.

Кевин: Ну, это то, что вы определенно можете сделать. Если вы добавите атрибут title к полям в вашей форме, у вас могут появиться всплывающие подсказки, которые помогут вам заполнить эти поля, но я думаю, никто этого не делает, потому что обычно люди не наводят указатель мыши на свои поля. поля формы, они вкладывают их или нажимают на них, чтобы дать им фокус, а затем они начинают печатать. Поэтому я предполагаю, что он предлагает, особенно для пользователей клавиатуры, которые хотели бы иметь возможность получить доступ к таким инструментам, как всплывающие подсказки по ссылкам и тому подобное, которые вы бы добавили снова с атрибутом title , в настоящее время это невозможно сделать прямо сейчас. вам нужно навести курсор мыши, если вы хотите получить эту информацию. И, да, я думаю, он интересуется, будут ли эти подсказки улучшены, сделаны ли они более функциональными, более доступными, если браузеры отображают их при переходе на вкладки. Очевидно, да, Патрик, если вы пользуетесь мышью, и я думаю, что большинство людей так и есть, вы бы никогда их не увидели, по крайней мере, не из-за фокусировки на клавиатуре, вы бы по-прежнему видели, как они копошатся. Итак, я думаю, что вы говорите, они не будут мешать вам, если они сделали?

Стефан: Это не влияет на меня в любом случае, верно, если я использую свою клавиатуру, я обычно не пролистываю веб-сайт. Я нахожусь на странице SitePoint, и мне нужно вечно, чтобы просто получить то, что я хочу, если я вкладываю вкладки.

Кевин: Да, да. Определенно.

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

Кевин: Это, конечно, проблема доступности, потому что есть пользователи, которые по какой-либо причине имеют двигательные нарушения, и они не могут использовать мышь, и поэтому они используют клавиатуру или иногда даже как палочку, которую они держат во рту, которую они затем нажмите клавиши клавиатуры, и поэтому они полностью взаимодействуют с Интернетом через клавиатуру. А такие браузеры, как Opera, особенно хорошо поддерживают навигацию с помощью клавиатуры, но в настоящее время все браузеры имеют, по крайней мере, базовую поддержку для перехода между всеми элементами или всеми активными элементами на странице в любом случае, что позволяет вам сфокусировать их на одном. в то время, а затем взаимодействовать с ними. На первый взгляд, мне кажется, что появление подсказок на клавиатуре было бы полезно для пользователей этого типа, это улучшило бы доступность информации, которую вы, вероятно, не могли бы получить, если бы не пользователь мыши. Но когда я думал об этом, мне пришло в голову, что даже если вы пользователь мыши и не перемещаетесь по странице, вы все равно перемещаете фокус клавиатуры по странице, как вы сказали, Патрик, если вы нажмете на В поле формы вы фактически делаете то же самое, что и тот, кто вкладывал бы в это поле формы, вы фокусировались на клавиатуре. И если в этот момент браузер ушел, о, он поместил фокус клавиатуры на это поле, я собираюсь отобразить подсказку, я не уверен, что это было бы идеально, эта подсказка может покрывать какую-то другую метку или какую-то другую часть страницы, на которую вы ссылались, когда хотели заполнить это поле формы, и это было бы не слишком хорошо.

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

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

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

Патрик: А теперь наша история, которая помогает расширить нашу базу слушателей.

Кевин: (смеется) О, это история Internet Explorer.

Брэд: Да, есть проблемы в движении или обвинения в движении. Я должен сказать, что Internet Explorer 9, который все еще находится в бета-версии, возможно, немного обманул или, возможно, обманул некоторые цифры в тесте SunSpider JavaScript Benchmark Test , который становится одним из стандартных тесты для своего рода теста браузера JavaScript. Таким образом, Роб Сэйр, инженер Mozilla, который довольно интересен, впервые обнаружил это и сказал, что IE может быть обманщиком. Он заметил, что Internet Explorer 9 был примерно в 10 раз быстрее, чем все другие браузеры, которые он тестировал в определенном тесте, который является математическим тестом. Поэтому он сделал несколько модификаций в этом разделе теста, и один из них заключался в добавлении истинного значения и добавлении возвращаемого значения, которые по сути ничего не делают, просто чтобы увидеть, что произойдет. И после того, как он внес это изменение, Internet Explorer 9 потребовал в двадцать раз больше времени для запуска двух новых тестов по сравнению с оригиналом, который представлял собой большой красный флаг, объясняющий, почему добавление двух вещей, которые практически ничего не делают, увеличивает его до 20 миллисекунд по сравнению с одной миллисекундой в этом тесте ,

Кевин: Тем более, что в Google Chrome и Opera, с которыми он также проводил те же тесты, они, как и следовало ожидать, показали очень минимальные различия во времени, когда он внес эти изменения в код.

Брэд: Как они должны. Я имею в виду, что вы знаете, что добавляете две строки кода, которые по сути ничего не делают, или они были двумя отдельными тестами, но небольшие изменения в каждом тесте, который в основном ничего не делает, не должны иметь никакого влияния на время выполнения, но это оказало большое влияние на Интернет. Explorer 9, который поднял некоторые флаги. Но Microsoft на самом деле вышла, и они вроде как объяснили, что произошло, и обвиняют в этом то, что они назвали «Устранение мертвого кода». И они действительно объяснили это довольно хорошо, я читал несколько разных постов, поэтому из блога Internet Explorer они объяснили: «Оптимизация удаления мертвого кода ищет код, который не влияет на работающую программу, и удаляет код из программы. Это дает преимущество как уменьшения размера скомпилированной программы в памяти, так и более быстрого запуска программы. И, по сути, бенчмарк-тест — это дорогой цикл, который по сути ничего не делает ». И вот, что они говорят, так это то, что IE9 фактически признает это, вырывает весь код, который ничего не делает, что в значительной степени является тестом, и именно поэтому он работает 20 в разы быстрее, чем все остальные браузеры, так что это ответ Microsoft.

Кевин: Так было ли это злым, или … я не уверен, что злое слово — правильное слово. Независимо от того, были ли они заведомо двуличными или нет, они признают, что Internet Explorer 9 убивает на этом конкретном тесте, просто признавая, что его не стоит запускать, и вообще не запускать его. Таким образом, он видит этот код, он идет, о, этот код не делает ничего полезного, я просто пропущу его, и вот как он убивает в этом тесте. Таким образом, они в основном говорят, что если вы хотите значимых результатов производительности, вам нужно написать лучший тест. Но, глядя на дискуссию, которая шла в Hacker News вокруг этого, кажется, я не знаю, они немного ставят это под вопрос. Например, рассматриваемый мертвый код — это цикл for в тесте, и кто-то из Hacker News просто переписал этот код как цикл while, который, если вы знаете свой JavaScript, вы знаете, что цикл for — это просто причудливый способ выражения Цикл while с переменной счетчика в нем большую часть времени. И поэтому повторное выражение его как цикла while не меняет смысла кода, не меняет того, что делает код, на самом деле внутреннее представление этого кода браузером должно быть почти таким же. И все же, просто сделать это изменение цикла for цикл while достаточно, чтобы Internet Explorer не смог распознать, что код мертв и работает. Итак, скептики говорят, что Microsoft — «устранение мертвого кода» — странным образом относится к точному коду, который использовался в этом тесте. Как будто их устранение мертвого кода было написано специально для исключения тестов из этого конкретного теста, а не из реального кода. Как ты думаешь, Брэд, ты покупаешь историю Microsoft?

Брэд: Я хочу, но в конце концов это Microsoft.

Патрик: Конечно, Брэд, конечно. Вы действительно хотите ; Я вижу, как ты падаешь на себя.

Кевин: (смеется)

Брэд: Эй, знаешь, я большой сторонник Windows 7, поэтому никто не может сказать, что я ненавижу все, что делает Microsoft.

Патрик: О! Давний сторонник.

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

Патрик: Я бы хотел, чтобы Microsoft просто выступила с некоторой чепухой по этому поводу и даже не дала объяснения, а просто сказала, вы знаете, что, это мы говорим, взять ваш эталон и подтолкнуть его, это ничего не значит и просто бросить немного чванства эта штука и звук действительно классные, но нет, у них должно быть объяснение.

Кевин: Я не думаю, что в наши дни Microsoft может позволить себе много шуток с веб-разработчиками

Стефан: Мне нравится хорошая теория заговора.

Кевин: Да?

Стефан: Да, это приятно.

Кевин: Что мне нравится, так это то, что показанные цифры показывают истинную производительность. Если устранение мертвого кода делает этот конкретный тест результатов бессмысленным, ну, тогда, просто добавляя те фрагменты, которые ничего не делают, а затем снова запуская этот код во всех браузерах, таблица результатов в этой истории рассказывает историю, которая на данный момент Google Chrome и Opera по-прежнему работают быстрее браузеров, чем Internet Explorer. С добавлением дополнительного кода «ничего не делать» Google Chrome проходит тест примерно за 9 с половиной секунд, Opera запускает тест за 7,9 секунд, извините, но не за секунды, миллисекунды, а Internet Explorer работает на скорости 20 миллисекунд. Таким образом, это правда, что, намеренно или нет, удаление мертвого кода создает впечатление, что Internet Explorer работает быстрее в этом тесте, хотя на самом деле он работает медленнее. Насколько эти тесты связаны с производительностью в реальном мире — это большой вопрос, и если Microsoft написала большую статью об устранении мертвого кода и о том, как он на самом деле ускорил процесс в реальном мире, это было бы действительно интересно, потому что если они могут повысить производительность своего браузера, пропуская код, который не нужно запускать, если они обнаруживают этот код в реальном мире, даже если код, который они делают, выполняется медленнее, а затем отлично, это правильный подход, который я скажу

Стефан: Да, потому что я всегда вставляю пустые циклы в своем коде.

Кевин: (Смеется.) Да, верно, у меня большой вопрос, имеет ли это какое-либо отношение к коду реального мира.

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

Брэд: Конечно. My Host Spotlight — это веб-сайт под названием Min.us. И мне нравятся такие домены, я не знаю почему, но они броские. И в основном это, наверное, самый простой сайт для обмена фотографиями, который я когда-либо видел. И мне нравятся сайты для обмена фотографиями, все очень общительные, мы всегда делимся фотографиями, так что чем проще вы можете сделать это для меня, тем лучше, и буквально вы загружаете этот сайт, и он говорит, что просто перетащите фотографии на страницу. Таким образом, вы можете перетащить одну картинку, вы можете перетащить 50 картинок и поместить их в свой браузер, и он загрузит их все в небольшую галерею, даст вам ссылки для каждого отдельного изображения, а также галерею, он даст Вы — ссылка на скачивание почтового индекса, это действительно круто, и это не могло быть легче. Так что это появилось месяц или два назад, и я только что узнал об этом на днях, но это довольно приятное маленькое приложение.

Кевин: Кажется, у них должны быть какие-то ограничения, чтобы вы не поместили туда всю свою библиотеку фотографий объемом 50 гигабайт.

Брэд: Да, я бы представил. Я не был одним из тех парней, которые бросили фотографии на 10 гигабайт, чтобы посмотреть, что произойдет, но я уверен, что кто-то попробовал это, поэтому я мог представить, что есть какие-то ограничения.

Кевин: Очень хорошо, хотя. Стефан, что у тебя?

Стефан: Ну, я был большим сторонником Instapaper в этом шоу.

Кевин: О да, вы и я оба.

Стефан: Но я читал блог Марко, и у него действительно есть описание того, как он создает свои резервные копии для Instapaper и его метод резервного копирования своего кода и базы данных, и я подумал, что часть базы данных имеет отношение к шоу только потому, что мы я говорил о MySQL минуту назад, и его метод базы данных использует репликацию MySQL, и он записывает двоичный журнал, который является функцией — я не знаю, сколько людей знакомы с этой функцией — но он содержит события, которые происходят в базу данных, и вы можете вернуться к этим событиям и принести, если кто-то деструктивно вставляет или удаляет из таблицы, мы можем вернуться и посмотреть на события и перестроить базу данных на основе этих событий. Так что он проходит через этот процесс, и он действительно аккуратный, он хорош для чтения, если вы разработчик базы данных или парень MySQL / PHP.

Кевин: Да. Это то, о чем мы говорили, я думаю, что это был сервис обмена закладками Magnolia, когда они потеряли свою базу данных, и мы сказали, что было бы здорово, если бы больше веб-сервисов были публичными о своих стратегиях резервного копирования. Это именно то, что я имел в виду, когда мы говорили об этом.

Стефан: Да, я имею в виду, что это хорошая стратегия для сайтов, где вы можете иметь базу данных master и slave, я думаю, что это действительно здорово.

Кевин: Патрик, что ты получил для нас?

Патрик: Итак, мой Spotlight — это сообщение в блоге Джея Бэра на сайте convinceandconvert.com, и оно называется « Зачем вам нужно открывать кимоно в социальных сетях» . И моя любимая часть поста, часть, которую я хочу выделить, — два видео в нем. Так что случилось, что Бостон Брюинз — это хоккейная команда в НХЛ, Национальной хоккейной лиге, здесь, в США, и есть также команды из Канады, и кто-то разместил видео онлайн, о 20-секундном видео, и это было Я думаю, они были одеты как фанаты Брюинз, и повредили часть туалета, где Брюинз играют в свои игры, в основном выбивая столб и превращаясь в дыру, и похоже, что они причиняют себе вред, и в основном они разрушительное имущество. И они разместили это в Интернете; вы не можете видеть их лица очень сильно.

Кевин: Это как видео с камеры безопасности?

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

Кевин: Удивительно. Если вы не слушали Podcast 88, у нас есть интервью с Джеем Бэром и Эмбер Нэслунд, соавторами книги «Сейчас революция» , и да, мы поговорили с ними несколько минут на BlogWorld Expo, и это отличное интервью, которое стоит проверить. если вы хотите услышать больше вещей в этом направлении.

Патрик: Это хороший ум, Кевин, я совершенно об этом забыл.

Кевин: repeatxrepeaty.com — мой центр внимания. Это просто сайт с мозаичными шаблонами, которые вы можете использовать по своему усмотрению, и это просто группа разных художников, цифровых художников, которые предоставили эти шаблоны для свободного использования, и некоторые из них действительно довольно удобны. Если вы хотите вернуться к эпохе расцвета фонов рабочего стола, которые повторяли шаблоны, вы можете сделать это в стиле, используя их, но я думаю, что это также как быстрый фон, если вы создаете, знаете, проектируете свой дизайн. персональный сайт. Я видел пару веб-сайтов, которые используют некоторые из этих шаблонов, и они выглядят действительно хорошо. Сам сайт — это просто набор миниатюр этих шаблонов, но вы можете нажать на любой из них и получить предварительный просмотр того, как он выглядит, выложенный плиткой, и да, просто очень хороший ресурс, если вы хотите, если вам нужно что-то стильное для Начните с небольшого графического вдохновения, зайдите на repeatxrepeaty.com и проверьте его.

И на этом шоу заканчивается. Ребята, давайте обойдем столы.

Брэд: Я Брэд Уильямс из webdevstudios.com, и вы можете найти меня в Твиттере @williamsba .

Патрик: Я Патрик О’Киф из сети iFroggy, я веду блог на managecommunities.com , найди меня в Твиттере @iFroggy , ifroggy.

Стефан: Я Стефан Сегрейвс, я пишу о том, как меня нащупает TSA, на badice.com (смех), и вы можете найти меня в Twitter @ssegraves .

Кевин: Это быстро развивающийся бизнес, который в настоящее время ведет блог TSA.

Патрик: Им может понадобиться выделить доменное имя для этого.

Кевин: Да, gropedbythetsa.com, получить его сейчас. Вы можете следить за мной в Твиттере @sentience и следить за SitePoint в Твиттере @sitepointdotcom , это sitepoint dotco m. Посетите нас по адресу sitepoint.com/podcast, чтобы оставить комментарии к этому шоу и подписаться на получение каждого шоу автоматически. Пока-пока.

Тема музыки Майка Меллы .

Спасибо за прослушивание! Не стесняйтесь сообщить нам, как у нас дела, или продолжить обсуждение, используя поле комментариев ниже.