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

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

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

Вебинар: Как написать первый тест на Selenium

Время на прочтение1 мин
Количество просмотров16K
Это второй вебинар из цикла бесплатных вебинаров по автоматизации тестирования.
Видеозапись (продолжительность 1 час 11 мин.):

Темы и детали видеозаписи под катом
Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии4

Кластерные и «обычные» индексы MySQL (InnoDB)

Время на прочтение5 мин
Количество просмотров130K
Все мы помним хрестоматийное объяснение «что такое индексы в БД и как они облегчают задачи поиска нужных строк». Уверен, у большинства из вас перед глазами встаёт нечто подобное:

Некластерный индекс

И сразу становится очевидно, насколько меньше данных нужно перелопатить для поиска двух-трёх нужных строк. Гениально. Просто. Понятно.

И лично мне всегда казалось, что улучшать эту схему некуда… Пока я не познакомился с кластерными индексами. Оказалось, что всё не так уж радужно с «обычными» индексами.

Итак, что же такое кластерный индекс, чем он лучше некластерного, и как с ним обстоит дело у MySQL.
Читать дальше →
Всего голосов 90: ↑87 и ↓3+84
Комментарии33

Могут ли насекомые быть запчастями?

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

Эта киберплатформа несёт до 9 грамм полезной нагрузки.

Возьмём гусеницу. В какой-то момент она начинает сама переделывать себя в бабочку. Вопрос прост: можно ли дать ей для сборки синтетические компоненты, которые позволят получить киборга-насекомое? Ответ – да, можно. И Мишель Махарбиз это сделал.

Когда этот учёный из Беркли создал первого киборга-жука, к нему сразу пришли военные (DARPA) и спросили, собирается ли он убивать людей, плюс что будет, если его жук убежит и начнёт бешено размножаться.
Читать дальше →
Всего голосов 181: ↑173 и ↓8+165
Комментарии135

MySQLi раскладываем все по полочкам

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

Для кого это статья? Первоочередной целью написания статьи было именно «разложить все по полочкам» для тех, кто уже работал с mysqli, но не вникал глубоко, а быстренько написал свои обертки и забыл про оригинальный синтаксис. Я постарался разъяснить нюансы, с которым столкнулся сам, при переносе данных из большой и очень старой БД, спроектированной человеком, не знающим про нормализации, в новую, с сильно изменившейся структурой.

Можно ли читать эту статью людям, которые все еще используют старое расширение mysql и только думающие об перехода на PDO или MySqli? Думаю даже нужно.

Читать дальше →
Всего голосов 52: ↑39 и ↓13+26
Комментарии63

По колено в PDF. PHP парсер с плюшками

Время на прочтение9 мин
Количество просмотров10K
Так получилось, что с месяц назад передо мной выросла совершенно неожиданная задача: сконвертировать PDF в html по имеющемуся шаблону. В том числе необходимо было разбивать все на страницы и выделять в них параграфы. Да и много еще чего. И все бы ничего, и обошелся бы я какой-нибудь левой библиотечкой, но кое-какие специфичные штучки-финтеплюшки, так необходимые мне, в библиотеках не нашлись. И это было печально…
Читать дальше →
Всего голосов 56: ↑53 и ↓3+50
Комментарии13

Python vs Ruby

Время на прочтение5 мин
Количество просмотров137K
Данная флеймообразующая статья призвана собрать в одном месте актуальную информацию по преимуществам Python над Ruby и Ruby над Python. Основываясь на собственном многолетнем опыте использования обоих языков, я постарался ограничить сравнение языками как таковыми и их стандартными библиотеками — сравнение web фреймворков, сред разработки и доступных библиотек не включены в статью, так как здесь и без меня немало копий сломано.
Читать дальше →
Всего голосов 201: ↑163 и ↓38+125
Комментарии349

Android. Обзор боевых приложений

Время на прочтение2 мин
Количество просмотров319K
Доброго времени суток!

Наряду со статьей "iPhone: MiTM атака из кармана", родилась почти аналогичная статья про Android.

Мы уже знаем, на что способен iPhone. Уступает ли ему Android?

Было рассмотрено около 25 боевых приложений. Хочу предоставить вам результат маленького исследования. Многие приложения даже не запустились, некоторые подвесили телефон намертво, но некоторые даже работали!

Весь софт тестировался на телефоне LG Optimus, с версией Android 2.3.

Итак, краткий обзор боевого софта на Android:

Читать дальше →
Всего голосов 255: ↑238 и ↓17+221
Комментарии49

jQuery File Upload

Время на прочтение2 мин
Количество просмотров182K
Ура! Еще один, свеженький… чем он лучше других?



а) Новенький! Всегда, кто берется что-то делать, то обычно смотрит: есть ли в этом смысл, и если есть — делает это.
б) Красивенький! Можно не точить, а ставить из коробки. Основан на Bootstrap'е и иконках Glyphicons
в) Само собой мультиселект файлов, Drag&drop, прогрессбар и превьюшки фотографий.
г) Поддержка кросдоменного соединения, докачка и ресайз фоток на стороне клиента.
д) Готов для любой платформы сервера (PHP, Python, Ruby on Rails, Java, Node.js, и тому подобное.)

blueimp.github.com/jQuery-File-Upload

Поддержка браузеров:

github.com/blueimp/jQuery-File-Upload/wiki/Browser-support

Читать дальше →
Всего голосов 215: ↑206 и ↓9+197
Комментарии118

Как выбирать фрилансерские заказы

Время на прочтение5 мин
Количество просмотров2.1K
Привет, Хабр!

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

Всем кому интересно, как обезопасить во фрилансе себя хоть немного, прошу под кат.

Читать дальше →
Всего голосов 53: ↑41 и ↓12+29
Комментарии60

Обновление грида через ajax

Время на прочтение5 мин
Количество просмотров41K
Привет, хабрасообщество!

В этой теме я хочу обсудить наиболее правильное использование компонента CGridView в Yii.
Ниже я опишу 3 способа, которые вижу лично я, и буду рад услышать ваши идеи в комментариях.



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


Звучит несложно, не правда ли? Давайте посмотрим, что нам предлагает Yii.
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии35

Yii и мультиязычный сайт. Правильные URL и гибкость в работе

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

При написании одного проекта, возникла необходимость в организации мультиязычности на сайте. Причем количество языков не должно ограничиваться двумя и URL должны быть человеко-понятные и SEO оптимизированные. Тоесть ссылки на сайте должны быть вида:
http://mysupersite.ru/ru/contacts для русского языка
http://mysupersite.ru/en/contacts для английского языка
Так как опыт у меня не очень большой, я начал вопрошать гугл. Вариантов, как оказалось, достаточно много, однако из всех мне приглянулся один вариант, который я использовал и слегка модифицировал.
Итак, как сделать сайт мультиязычным...
Всего голосов 35: ↑29 и ↓6+23
Комментарии67

Делаем приватный монитор из старого LCD монитора

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


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.

Читать дальше →
Всего голосов 1486: ↑1468 и ↓18+1450
Комментарии327

AssetManager: как форсировать получение пользователем обновленной статики

Время на прочтение5 мин
Количество просмотров19K
При разработке веб-приложений существует одна общеизвестная проблема. Мы, программисты, пишем новый javascript-код, стили в css, меняем статику… И статика эта как правило кешируется браузером пользователя и может оставаться в кеше на довольно долгое время (и это на самом деле правильно, ибо может ускорить загрузку страниц в разы).

Но что же делать, если мы поменяли статику? Как заставить пользователя сбросить кеш и обновить эти файлы? Существуют некоторые общепринятые способы, например, добавлять версионную метку к имени файла, или добавлять временную метку в GET-параметре при подключении файла.

В случае, если вы используете фреймворк Yii, вы также можете указывать версии или временные метки у файлов скриптов и стилей при подключении, однако за этим постоянно нужно следить, а в случае Yii еще и следить за отсутствием конфликтов (когда, допустим, виджет и вьюшка используют один и тот же скрипт, но с разными временными метками).
Собственно говоря, в Yii можно организовать более цивилизованный подход к этому делу.
Об этом то я и приглашаю вас почитать
Всего голосов 37: ↑36 и ↓1+35
Комментарии15

Быстрые счетчики в Yii

Время на прочтение2 мин
Количество просмотров12K
В релизе 1.1.8 PHP-фреймворка Yii появилcя дополнительный метод в классе CActiveRecord для работы со счетчиками, а именно saveCounters. Наверное, многие из вас читали о нем в анонсе релиза. Под катом я расскажу в чем его крутость и почему стоит его использовать. Возможно, после прочтения вы побежите рефакторить свой код.
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии27

Легкий способ начать тестировать

Время на прочтение4 мин
Количество просмотров50K
Если вы PHP-разработчик, и по разным обстоятельствам тесты для своих приложений не пишете, то эта статья для вас. В ней я постараюсь вкратце показать с чего начать и что делать, чтобы написание тестов приносило вам радость, а вашему приложению стабильность.

Итак, первый совет. Забудьте всё что вы знаете о юнит-тестах. Швырните табуреткой в человека, который сказал вам, что без них не обойтись. Попробуем разобраться, в каких случаях нужно их использовать, а в каких — нецелесообразно.
Читать дальше →
Всего голосов 83: ↑61 и ↓22+39
Комментарии54

Оптимизация ORDER BY — о чем многие забывают

Время на прочтение2 мин
Количество просмотров72K
На тему оптимизации MySQL запросов написано очень много, все знают как оптимизировать SELECT, INSERT, что нужно джоинить по ключу и т.д. и т.п.

Но есть один момент, тоже неоднократно описанный во всех мануалах, но почему-то про него все забывают.
Читать дальше →
Всего голосов 111: ↑103 и ↓8+95
Комментарии65

Бесплатное увеличение Dropbox аккаунта на 5 ГБ

Время на прочтение2 мин
Количество просмотров47K
Dropbox тестирует функцию автоматического расшаривания фото и видео с внешних накопителей. Пока идёт бета-тест за каждые 500 МБ выгруженного контента пользователю бесплатно начисляется 500 МБ дополнительного места вплоть до 5 ГБ.

Для проверки функции необходимо:
1. Скачать и установить новую тестовую версию Dropbox 1.3.15 (ссылка для Mac OS).
2. Прописать в Autoplay для желаемого контента выгрузку через Dropbox.
Читать дальше →
Всего голосов 86: ↑78 и ↓8+70
Комментарии314

Не компьютерная мышь и высокие технологии

Время на прочтение3 мин
Количество просмотров10K
В древние времена слово «мышь» трактовалось однозначно, затем настали новые года, другие нравы и вот уже приходиться отмечать — статья не про компьютерную мышь.

Иногда люди сталкиваются с мышами. Ладно, если эта встреча случайна и мимолетна, но бывает так, что мышкам нравится ваше жилье и они начинают считать его своим, а это уже не совсем хорошо для обоих. Приходится изобретать велосипед…
Читать дальше →
Всего голосов 199: ↑179 и ↓20+159
Комментарии161

Подводный камень в foreach($items as &$item)

Время на прочтение2 мин
Количество просмотров77K
Многие любят писать такие конструкции в том или ином виде, каждый сталкивался:
foreach ($items as &$item) {
    $item += 2;
}

Но не многие подозревают о том, какая опасность тут скрывается.
Рассмотрим пример.
Читать дальше →
Всего голосов 156: ↑113 и ↓43+70
Комментарии145

Универсальное чтение ячеек в PHPExcel

Время на прочтение4 мин
Количество просмотров102K
Привет, Хабр!
Мне по работе часто приходится импортировать Excel-документы средствами PHP.
Для этого я использую библиотеку PHPExcel, которая на сегодняшний день является весьма удобным инструментом.
Но есть несколько «скользких» моментов, связанных с чтением данных из ячеек, о которых я хочу рассказать хабрачитателям, а также разобрать функцию, решающую эти проблемы.
Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии29

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность