Как стать автором
Обновить
205
0
Артемий @enartemy

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

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

Три интересные задачи на знание SQL — Решения

Время на прочтение9 мин
Количество просмотров35K
В недавнем своем топике я приводил три на мой взгляд интересные задачи по MySQL с желанием посмотреть на возможные решения хабралюдьми. Как я и обещал, я привожу свои решения этих задач. Для того, чтоб текст был интересным и познавательным я решил детально разжевать что зачем и как. Итак…

Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии15

Три интересные задачи на знание SQL

Время на прочтение4 мин
Количество просмотров29K
image

Буквально несколько часов назад, после внимательного изучения комментариев вот к этому топику я был несколько удивлен что многие не очень любят использовать условия HAVING и похоже другие возможности СУБД. Скажу прямо — мне очень понравилась обсуждение простейшего и не работающего запроса, в результате которого многие узнали для себя много нового и познавательного (это мое личное мнение). Поэтому я решил сделать вот что — вывести три моих самых любимых задачи по знанию SQL (MySQL) на суд общественности.

Данные задачи абсолютно реальные, и в отдаленном светлом прошлом действительно имели место, и были благополучно решены жертвой некоторого количества рабочего времени и нервных клеток. Я уверен на 100% что они актуальны и по сей день, и будут актуальны еще долго. Сложными их назвать нельзя, но и очень простыми тоже (в зависимости от уровня подготовки конечно).

Читать дальше →
Всего голосов 62: ↑43 и ↓19+24
Комментарии82

Нулевое столетие

Время на прочтение1 мин
Количество просмотров690
Пара строчек из документации к PostgreSQL (секция 9.9.1. EXTRACT, date_part):

The first century starts at 0001-01-01 00:00:00 AD, although they did not know it at the time. This definition applies to all Gregorian calendar countries. There is no century number 0, you go from -1 to 1. If you disagree with this, please write your complaint to: Pope, Cathedral Saint-Peter of Roma, Vatican.

Дословный перевод:
Первое столетие начинается в 0001-01-01 00:00:00 нашей эры, хотя тогда еще это не было известно. Это определение относится ко всем странам Григорианского календаря. Нет никакого нулевого столетия, следом за -1-ым идет сразу 1-ое. Если вы не согласны с этим, пожалуйста напишите свою жалобу на следующий адрес: Папа Римский, Собор Святого Петра, Ватикан.


С одной стороны заставило улыбнуться, с другой — интересный факт. Это один из немногих случаев, когда естественный порядок нумерации нарушен.
Всего голосов 30: ↑27 и ↓3+24
Комментарии28

Небольшая разминка мозгов (или quine на php)

Время на прочтение1 мин
Количество просмотров3K
Встерил тут я на каком-то сайте интересную задачку, а именно:

Написать php-скрипт, который бы выводил собственный код.
Условия:
— Использовать функции чтения файла и потока нельзя.
— Код должен быть выведен от и до, включая символы <?php… ?>
— Код должен быть как можно короче.


Честно говоря, сначала я впал в ступор, но после получаса времени пришел к такому результату
(перенос строки убрать, поставлен чтоб на баннер не наезжало).

<?$a='<?$a="%s";printf(str_replace(chr(34),chr(39),$a),$a);?>';
printf(str_replace(chr(34),chr(39),$a),$a);?>



Но что-то мне подсказывает что сеё далеко не единственное решение. Поэтому просто интересно мнение сообщества — кто-нибудь может предложить еще решения? Включая всевозможные хаки, (halt_compiler разные) и др.
Всего голосов 14: ↑11 и ↓3+8
Комментарии8

Безопасная загрузка изображений на сервер. Часть вторая

Время на прочтение7 мин
Количество просмотров28K
Это вторая часть перевода. Начинать прочтение лучше с первой.

Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).

Даже если мы знаем точно, какие расширения файла интерпретируются PHP, у нас нет никакой гарантии, что это не изменится в будущем, когда другие приложения будут установлены на сервер. К тому времени можно забыть, что безопасность нашего сервера зависит от этих изменений.
Читать дальше →
Всего голосов 63: ↑59 и ↓4+55
Комментарии31

Безопасная загрузка изображений на сервер. Часть первая

Время на прочтение10 мин
Количество просмотров137K
В данной статье демонстрируются основные уязвимости веб-приложений по загрузке файлов на сервер и способы их избежать. В статье приведены самые азы, в врят-ли она будет интересна профессионалам. Но тем неменее — это должен знать каждый PHP-разработчик.

Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.

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

Проводимые тесты показали, что многие веб-приложения имеют множество проблем с безопасностью. Эти «дыры» предоставляют злоумышленникам обширные возможности совершать несанкционированные действия, начиная с просмотра любого файла на сервере и закачивания выполнением произвольного кода. Эта статья рассказывает об основных «дырах» безопасности и способах их избежать.
Читать дальше →
Всего голосов 77: ↑69 и ↓8+61
Комментарии57

Графические фильтры на основе матрицы скручивания

Время на прочтение6 мин
Количество просмотров42K
UPD: Заголовок изменен, что бы более соответствовать теме статьи

В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие.

Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно о php и flash). Так же, статья будет интересна дизайнерам, использующим Adobe Photoshop, поскольку в нем имеется соответствующий фильтр (Filter-Other-Custom).

Примеры будут на языке PHP с использованием библиотеки GD. Теория, практика, примеры (осторожно, много картинок!)

под катом
Всего голосов 100: ↑98 и ↓2+96
Комментарии37

Пишем на картинках

Время на прочтение7 мин
Количество просмотров14K
В течение последнего времени что-то часто стали мелькать статьи про обработку изображений на php. Скругленные края уже были, тени были, мокрый пол был, еще куча всего было.

А вот надписей вроде еще не было. Значит будут. :-)

Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами.
Код и пример под катом
Всего голосов 104: ↑88 и ↓16+72
Комментарии36

Браузерное оружие

Время на прочтение2 мин
Количество просмотров1.9K
Сразу после рождественских выходных Билл Гейтс молча вошел в кабинет совещаний корпорации Microsoft и сел на своё место.
— Господа, — проговорил основатель Microsoft, — наша разведка доложила, что Google разрабатывает свой браузер. Это очень плохая новость. Скоро мы потеряем наши преимущества в браузерных технологиях, которые и так безнадежно устарели. Даже несмотря на седьмую версию эксплорера. Какие будут предложения?
Воцарилось молчание. Судя по всему, все присутствующие на совещании, не знали что сказать.
— Более того, — продолжил Билл Гейтс, нарушая тишину, — мы продолжаем подвергаться атакам этих красных террористов – Firefox и Opera. Они все еще слабы, но численность их пользователей увеличивается. Причем Google им в этом активно помогает. Наш Internet Explorer храбро сражается, но без достаточной поддержки его дни сочтены.
Читать дальше →
Всего голосов 161: ↑123 и ↓38+85
Комментарии82

Почему iPhone 3G провалился в России

Время на прочтение1 мин
Количество просмотров3.7K
Стив Джобс сидел в своем кабинете и раскладывал на своем компе пасьянс «Паук». Он уже почти закончил, когда в его кабинет без стука вбежал взмыленный директор по маркетингу:
— Стив! Я понял причину провала iPhone в России!
Читать дальше →
Всего голосов 492: ↑414 и ↓78+336
Комментарии170

Про Стива Джобса и свежие решения

Время на прочтение2 мин
Количество просмотров916
Как-то ранним утром Стив Джобс пришел на работу и тут же вызвал к себе директора по маркетингу.
— Ну чего там, с нашим айФоном? — спросил Джобс вытаскивая из кармана свою Нокию и кладя её на стол. — Как идут дела?
— Да так себе. Не очень успешно. Говорил же, надо было нормальный GPS сделать.
— Ладно. Я вот о чем подумал… — Стив Джобс расположился в кресле и положил ноги на стол. — Давненько мы мощных компьютеров не выпускали. С этими Эйрами и Фонами забыли про важный сегмент рынка. Надо сделать очень мощную графическую станцию. 8 гигабайт оперативы как минимум. А то скоро все дизайнеры на PC сбегут.
— Хорошая мысль… – маркетолог задумался. – А как назовем?
Читать дальше →
Всего голосов 270: ↑206 и ↓64+142
Комментарии65

Обрати свой взор сюда, коль вздумал ты писать на Хабре!

Время на прочтение3 мин
Количество просмотров806
Наверно стоило это опубликовать в разделе «Юмор», но поскольку все-таки тут есть некоторые рациональные мысли, оставлю как есть.

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

Что же получилось через сутки:

Далее анализ опроса и небольшой бонус
Всего голосов 195: ↑152 и ↓43+109
Комментарии96

Маркетинговые ходы разработчиков CMS

Время на прочтение3 мин
Количество просмотров1.7K
— Наше подсолнечное масло не содержит холестерина!
— Разумеется, ни одно подсолнечное масло не содержит холестерина.


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

Как известно, залог успешного бизнеса – это маркетинг и реклама. Рассказать о преимуществах, недостатки представить как преимущества, а которые не получилось – скрыть. С системами управления контентом точно такая же история. Битрикс и UMI считаются лидерами рынка не потому, что у них действительно хорошие продукты, а потому что у них действительно хорошие маркетологи. В действительности, все CMS по своей сущности мало чем отличаются – они предоставляют совершенно одинаковые возможности, одинаковым образом. Но продукт надо как-то выделить среди остальных, надо что-то написать в разделе «Преимущества системы». Вот и придумывают достоинства, которых не существует или которые вообще не являются достоинствами. Далее о наиболее распространенных из них.
Читать дальше →
Всего голосов 153: ↑121 и ↓32+89
Комментарии110

Пара идей о дальнейшем развитии микросайтинга

Время на прочтение1 мин
Количество просмотров583
Я задумался над тем, как реально микросайтинг можно внедрить в жизнь и что на основе него можно сделать. Уточню: речь идет о следующих основых приемах:

1. Можно отобразить картинку, которая находится на другом сайте
2. Можно поставить ссылку на другой сайт, который после загрузки перекинет тебя обратно
3. Данные пользователя на основе сессии

Вот какие у меня радились мысли для стартапов, которые реально могут быть интересными:

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии8

Микроапплеты

Время на прочтение1 мин
Количество просмотров535
В своей прошлой статье — Микрохостинг микросайтов увжаемый ainu сказал:

Мне было бы приятно увидеть использование микросайтов где-нибудь ещё. Технология не моя лично. Она должна быть достоянием общественности.

Чтож, сказано — сделано. :-)

Представляю вашему вниманию следующий виток микросайтинга — микроапплеты.

Микроапплеты сделаны на основе микросайтинга, но в отличие от последнего больше похожи на выполнение программ. Т.е. это и есть программы, которые могут быть выполнены в … комментариях. Действительно, предложенных ainu механизмов вполне хватает — не только для создания микросайтов, а для реализации своего рода виртуальной машины, у которой есть оперативная память в виде сессии, и программа в виде php-скрипта.

И в качестве примера такого приложения я сделал реализацию всем вам хорошо известной игры — Сапер.

В комментарии!
Всего голосов 75: ↑65 и ↓10+55
Комментарии50

Алгоритмы организации тэгов

Время на прочтение3 мин
Количество просмотров27K
Тэги – неотъемлемая часть всех современных сайтов и косвенный признак принадлежности сайта к пресловутому Вэб-Два-Ноль.

В статье я хочу рассказать об способах и алгоритмах тегирования информации.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии48

Кто ты, о %username%?

Время на прочтение1 мин
Количество просмотров609
Навеяно комментарием ur001 в топике Return to innocence:

… Да, но чтобы заплюсовать человека надо зайти к нему в профиль, а там сразу видно кто и что он. И его текущую карму…

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

Читать дальше →
Всего голосов 115: ↑71 и ↓44+27
Комментарии52
1

Информация

В рейтинге
Не участвует
Откуда
Казань, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность