Pull to refresh
0
0
Владимир @Skull

User

Send message

Индексы в MySQL: многоколоночные индексы против комбинированных индексов

Reading time9 min
Views119K
Я часто вижу ошибки, связанные с созданием индексов в MySQL. Многие разработчики (и не только новички в MySQL) создают много индексов на тех колонках, которые будут использовать в выборках, и считают это оптимальной стратегией. Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE.

Намного лучшей (здесь и далее прим. переводчика: а обычно и единственной верной) стратегией является создание комбинированного индекса вида (AGE,STATE). Давайте рассмотрим почему это так.

Читать дальше →
Total votes 74: ↑58 and ↓16+42
Comments57

Выразительный JavaScript: Функции высшего порядка

Reading time17 min
Views104K

Содержание




Цу-ли и Цу-су похвалялись размерами своих новых программ. «Двести тысяч строк»,- сказал Цу-ли,- «не считая комментариев!» Цу-су ответил: «Пф-ф, моя – почти миллион строк». Мастер Юнь-Ма сказал: «Моя лучшая программа занимает пятьсот строк». Услышав это, Цу-ли и Цу-су испытали просветление.

Мастер Юнь-Ма, Книга программирования

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

Энтони Хоар, 1980 лекция на вручении премии Тьюринга


Большая программа – затратная программа, и не только из-за времени её написания. Большой размер обычно означает сложность, а сложность сбивает с толку программистов. Сбитые с толку программисты делают ошибки в программах. Большая программа означает, что багам есть где спрятаться и их получается труднее отыскать.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments7

Дайджест интересных новостей и материалов из мира PHP № 52 (16 – 30 ноября 2014)

Reading time3 min
Views23K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments11

Inversion of Control: Методы реализации с примерами на PHP

Reading time8 min
Views50K
О боже, ещё один пост о Inversion of Control


Каждый более-менее опытный программист встречал в своей практике словосочетание Инверсия управления (Inversion of Control). Но зачастую не все до конца понимают, что оно значит, не говоря уже о том, как правильно это реализовать. Надеюсь, пост будет полезен тем, кто начинает знакомится с инверсией управления и несколько запутался.

Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments32

Процессоры, ядра и потоки. Топология систем

Reading time12 min
Views285K
В этой статье я попытаюсь описать терминологию, используемую для описания систем, способных исполнять несколько программ параллельно, то есть многоядерных, многопроцессорных, многопоточных. Разные виды параллелизма в ЦПУ IA-32 появлялись в разное время и в несколько непоследовательном порядке. Во всём этом довольно легко запутаться, особенно учитывая, что операционные системы заботливо прячут детали от не слишком искушённых прикладных программ.



Используемая далее терминология используется в документации процессорам Intel. Другие архитектуры могут иметь другие названия для похожих понятий. Там, где они мне известны, я буду их упоминать.

Цель статьи — показать, что при всём многообразии возможных конфигураций многопроцессорных, многоядерных и многопоточных систем для программ, исполняющихся на них, создаются возможности как для абстракции (игнорирования различий), так и для учёта специфики (возможность программно узнать конфигурацию).
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments18

Как удалить bucket с 400 миллионами файлов на Amazon S3

Reading time1 min
Views22K
Допустим, у вас в бакете скопилось несколько сотен миллионов файлов (всякое бывает) и вы решили их удалить. Удалить бакет без удаления содержимого нельзя. Удаление самих файлов происходит примерно по 1000 за 2 секунды. Несложно посчитать, что 400 миллионов файлов можно удалить за 9 дней работы браузера без выключения, да еще и заплатить придется за каждую операцию (DELETE хоть и бесплатный, но LIST стоит денег).

Но есть возможность настроить правила хранения файлов так, чтобы они удалялись автоматически:
Читать дальше →
Total votes 79: ↑63 and ↓16+47
Comments14

Генерация HTML: удобнее чем хелперы и чистый HTML

Reading time6 min
Views37K
Писать чистый HTML часто неудобно, особенно если нужно делать динамические вставки.

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

В некоторых фреймворках есть хелперы, в частности написать эту статью меня вынудила Aura.Html. С хелперами иная история — они изначально задуманы для реального упрощения, поскольку одной командой могут генерировать хороший кусок HTML кода, но они в большинстве заточены под определённое использование, и что-то дальше этого выглядит слишком криво.

Как более универсальное решение было бы не плохо не изобретать причудливый синтаксис, а использовать самый обычный PHP и всем знакомые примитивные CSS-селекторы.

Размышляя в таком духе некоторое время назад я принялся пилить свой велосипед. Велосипед получился, использовался в рамках другого велосипеда, потом отделился, много раз обновлялся, и сейчас я хотел бы поделиться им с сообществом.
Под катом множество примеров
Total votes 38: ↑24 and ↓14+10
Comments33

Илья Григорик о внедрении HTTP/2

Reading time4 min
Views39K
Известный специалист по серверной и клиентской оптимизации, соавтор WebRTC, автор книги "High Perfomance Browser Networking" Илья Григорик из Google опубликовал презентацию “HTTP/2 all the things!”, в которой объясняет, как следует настраивать серверную часть под HTTP 2.0, чтобы повысить скорость загрузки страниц и уменьшить latency, по сравнению с HTTP 1.1.


Режим Connection View в браузере показывает загрузку элементов заглавной страницы Yahoo.com в HTTP 1.1

Илья начинает с того, что для современных сайтов бóльшая часть задержек приходится на ожидание загрузки ресурсов, при этом полоса пропускания не является ограничивающим фактором (синим цветом на диаграмме Connection View). По статистике, для загрузки средней веб-страницы браузер делает 78 запросов к 12 различным хостам (общий размер загружаемых файлов 1232 КБ).
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments27

Как использовать API сайта, у которого нет API?

Reading time4 min
Views80K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →
Total votes 115: ↑105 and ↓10+95
Comments40

20 самых популярных выступлений всех времен на конференции TED

Reading time3 min
Views353K
Привет, Хабр. Я знаю, что здесь уважают и любят выступления TED. Поэтому я не мог пройти мимо новости о том, что сайт ted.com после редизайна обновил плейлист «20 самых популярных выступлений на TED всех времен». Это яркий пример того, как путем послабления копирайта (все лекции TED находятся в открытом доступе, распространяются по лицензии CC, согласно которой разрешено все, кроме коммерческого использования) и организации краудсорсинга (все переводы выполняют волонтеры) можно добиться впечатляющих результатов…



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

Рейтинг составлен по количеству просмотров (в статистике учитывались данные с TED.com, Youtube, iTunes, Hulu, встроенных фреймов, количества скачиваний и т.д.)

Большинство лекций переведены на русский язык, с субтитрами или в озвучке. Не буду много писать, это нужно смотреть. Остальное под катом.
Читать дальше →
Total votes 117: ↑109 and ↓8+101
Comments22

Как я попал в Google [перевод]

Reading time14 min
Views101K
image

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

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

Ах, да, ещё кое что. Это не пособие о том, как получить работу в Google. Основываясь на моём опыте, я не думаю что подобное вообще существует. Я не буду описывать интервью в деталях (вы не узнаете, что за вопросы мне задавали), дабы не разглашать никакой конфиденциальной информации.

Основная цель этого текста — рассказ о моём личном опыте полученном в период «до-Google». Надеюсь, что это будет хоть немного полезному кому-нибудь из вас.
Читать дальше →
Total votes 71: ↑49 and ↓22+27
Comments40

История портативных игровых консолей. Часть 1.1 (1990-е годы)

Reading time4 min
Views41K
Привет, Хабр!

В комментариях к моей статье История портативных игровых консолей. Часть 1 (До 2000 года) вы указали мне на отсутствие некоторых игровых консолей, которые были доступны в 1990-х. Поэтому я написал это дополнение.

Список консолей в этот раз:
  • Brick Game
  • Sega Nomad
  • Game.com
  • Visual Memory Unit для DreamCast
  • Neo Geo Pocket
  • Neo Geo Pocket Color
  • WonderSwan
  • WonderSwan Color


image image image image

Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments10

Феерическая расстановка всех точек над Lumia 1020 или каким должен быть настоящий камерофон с поддержкой RAW

Reading time11 min
Views220K

Пришло время собрать в одном месте все-все-все мифы и разоблачения одного из самых противоречивых с точки зрения читателей камерофонов — Lumia 1020. (Внимание, много фото, красивых фото)

А также гвоздь программы, впервые на хабре, у всех на глазах: работа с RAW-исходниками, полученными с 1020, и их обработка.

Садитесь поудобнее, мы начинаем ;)
Какие вопросы чаще всего приходят в голову, когда читатель слышит выражение: «Камерофон Lumia 1020 с камерой в 41 мегапиксель»?

  1. 41 мегапиксель, как он там умещается?
  2. Соответствует ли остальное железо заявленному уровню фотомодуля?
  3. И всё же, там правда столько мегапикселей?
  4. Да даже если столько, какая от них польза? Зачем так много?
  5. Предположим, что в этом есть смысл, но RAW в смартфоне — это же перебор, толку от него с такой матрицы?!!
  6. Всё равно зеркалка лучше!

P.S. Да, у автора всё так же остался приступ «Люди любят обиженных» и он всё ещё отчаянно пытается восстановить честь финских инженеров, чьи достижения, по мнению автора, были незаслуженно проигнорированы в свете последних событий.


Пойдём по порядку.

1. 41 мегапиксель, как он там умещается?


Читать дальше →
Total votes 212: ↑174 and ↓38+136
Comments201

Взгляд изнутри: мир вокруг нас – 4

Reading time5 min
Views114K


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

Новые фотографии микромира ждут Вас!
Total votes 162: ↑159 and ↓3+156
Comments59

Смерть OS/2: убийство или самострел?

Reading time11 min
Views79K
Моя первая статья про OS/2 в основном состояла из извинений за личный вклад в провал OS/2. Но я не могу возложить всю вину на себя. Честно говоря, у провала OS/2 были тысячи причин, с подавляющим большинством которых я ничего не мог поделать. Вот некоторые из них.

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

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


Эпоха IBM, в которую машины, принтеры, диски, люди, коты и собаки жили вместе.
Читать дальше →
Total votes 66: ↑63 and ↓3+60
Comments27

Фантастические сериалы — обзор от фаната

Reading time8 min
Views82K
Мне наступили на больную мозоль, сделав некий обзорный пост по нескольким фантастическим сериалам.
А так как субботним вечером делать особенно нечего, давайте-ка я сделаю свой, более полный.
Да, будут спойлеры, имейте в виду.
Да, и очень много картинок! Трафик!

Начнём со Stargate

Целое семейство сериалов, начавшихся с одноимённого фильма.
Это во-первых, конечно,

Stargate SG-1
10/10
image
Читать дальше →
Total votes 238: ↑132 and ↓106+26
Comments262

Как делают SSD-накопители (видео)

Reading time1 min
Views78K
Компания Micron Technology, один из крупнейших производителей микросхем оперативной и флеш-памяти (готовые устройства продаются под брендом Crucial), опубликовала видеоролик, демонстрирующий основные этапы производства SSD-накопителя: от проектирования топологии микросхемы до прошивки, тестирования и упаковки устройств. Очень немногие могут похвастаться тем, что видели этот процесс вживую — в беспылевые помещения, где производятся современные микросхемы с элементами нанометровых размеров простому смертному попасть почти невозможно. Так что наслаждайтесь:



Total votes 97: ↑91 and ↓6+85
Comments50

Jiayu G3 — Китайский телефон с европейским качеством

Reading time3 min
Views720K

— CPU: MTK 6577 Dual Core 1.0GHz
— GPU: PowerVRTM SGX Series5 3D
— OS Android 4.0 Ice Cream Sandwich (ICS)
— Память: оперативная (RAM): 1GB/ внутренняя (ROM): 4GB
— Поддерживает Micro SD Memory Card (TF-Card), до 32GB
— Габариты: 135 x 65 x 10.8 mm
— Масса: 156 g
— Экран: 4.5 дюйма, матрица IPS, ёмкостный мультитач(7 точек) и стекло Gorilla Glass
— HD-разрешение (1280 x 720 pixels)
— Поддержка сетей: (2 сим-карты) Network Dual SIM G+G W+G
— 2G:GSM 850/900/1800/1900MHz
— 3G:WCDMA 850/900/1900/2100MHz
— Встроенный GPS & A-GPS
— Bluetooth with EDR & A2DP
— Wi-Fi IEEE 802.11 b/g
— Две камеры: основная 8.0 / фронтальная 1.3 мегапикселей
— Gravity Sensor, Proximity Sensor, Light Sensor
— Литий-ионная батарея 2750 mAh
Читать дальше →
Total votes 100: ↑80 and ↓20+60
Comments242

Величие Вселенной в цифрах, и немножко в картинках

Reading time8 min
Views66K
Привет, хабровчанин!
Этот пост является мыслями вслух, криком души, просто размышлением, а так же, небольшими подсчетами. Надеюсь, эта тема заставит развеятся и немножко задуматься. А может, просто доставит удовольствие красивыми картинками.

Я хотел бы показать насколько малы мы в бесконечных просторах космоса. И насколько невозможно сейчас нам оторваться от маленькой песчинки, которая нас породила, и сейчас греет и кормит. Употребляя в отношении землян синонимы слов “малы” и “ничтожны”, я ни в коем случае не хочу показать, что мы действительно являемся таковыми. Ведь именно нам выпала честь созерцать красоты пространства. Таким образом я лишь хочу подчеркнуть величие окружаещего нас мира.

image

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

Пока что телескопы — единственный способ путешествовать так далеко. Самым известным из них, несомненно, является Хаббл. Фотографии, сделанные им, вне сомнения, видел каждый, кто даже не заинтересован в космосе. Поэтому, с них я и хочу начать понимание того, насколько мы ничтожны.

Читать дальше →
Total votes 136: ↑131 and ↓5+126
Comments257

Haipai I9220 — Как китайцы копировали Galaxy Note, а получился 5" планшет

Reading time7 min
Views189K


  • Процессор MT6575, работающий на частоте 1ГГц
  • 512MB оперативки, и 2Гб памяти
  • 2 активные сим-карты(в режиме ожидания, конечно), одна из которых может работать в 3G сетях.
  • Экран 5.1", с емкостным сенсором и разрешением 800х480.
  • Акселерометр, датчик приближения
  • Коммуникации: GPS, Wi-Fi(n), BT
  • 2 камеры: задняя 5Мп, авто-фокус, светодиодная подсветка и фронтальная 0,3Мп
  • Android Ice Cream Sandwich 4.0.3
  • Батарея(даже две) емкостью 2800mAh

Читать дальше →
Total votes 81: ↑69 and ↓12+57
Comments128

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Date of birth
Registered
Activity