В недавнем своем топике я приводил три на мой взгляд интересные задачи по MySQL с желанием посмотреть на возможные решения хабралюдьми. Как я и обещал, я привожу свои решения этих задач. Для того, чтоб текст был интересным и познавательным я решил детально разжевать что зачем и как. Итак…
Артемий @enartemy
User
Три интересные задачи на знание SQL
4 min
30KБуквально несколько часов назад, после внимательного изучения комментариев вот к этому топику я был несколько удивлен что многие не очень любят использовать условия HAVING и похоже другие возможности СУБД. Скажу прямо — мне очень понравилась обсуждение простейшего и не работающего запроса, в результате которого многие узнали для себя много нового и познавательного (это мое личное мнение). Поэтому я решил сделать вот что — вывести три моих самых любимых задачи по знанию SQL (MySQL) на суд общественности.
Данные задачи абсолютно реальные, и в отдаленном светлом прошлом действительно имели место, и были благополучно решены жертвой некоторого количества рабочего времени и нервных клеток. Я уверен на 100% что они актуальны и по сей день, и будут актуальны еще долго. Сложными их назвать нельзя, но и очень простыми тоже (в зависимости от уровня подготовки конечно).
+24
Нулевое столетие
1 min
708Пара строчек из документации к 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-ое. Если вы не согласны с этим, пожалуйста напишите свою жалобу на следующий адрес: Папа Римский, Собор Святого Петра, Ватикан.
С одной стороны заставило улыбнуться, с другой — интересный факт. Это один из немногих случаев, когда естественный порядок нумерации нарушен.
+24
Небольшая разминка мозгов (или quine на php)
1 min
3.1KВстерил тут я на каком-то сайте интересную задачку, а именно:
Написать php-скрипт, который бы выводил собственный код.
Условия:
— Использовать функции чтения файла и потока нельзя.
— Код должен быть выведен от и до, включая символы <?php… ?>
— Код должен быть как можно короче.
Честно говоря, сначала я впал в ступор, но после получаса времени пришел к такому результату
(перенос строки убрать, поставлен чтоб на баннер не наезжало).
Но что-то мне подсказывает что сеё далеко не единственное решение. Поэтому просто интересно мнение сообщества — кто-нибудь может предложить еще решения? Включая всевозможные хаки, (halt_compiler разные) и др.
Написать 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 разные) и др.
+8
Безопасная загрузка изображений на сервер. Часть вторая
7 min
28KTranslation
Это вторая часть перевода. Начинать прочтение лучше с первой.
Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).
Даже если мы знаем точно, какие расширения файла интерпретируются PHP, у нас нет никакой гарантии, что это не изменится в будущем, когда другие приложения будут установлены на сервер. К тому времени можно забыть, что безопасность нашего сервера зависит от этих изменений.
Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).
Даже если мы знаем точно, какие расширения файла интерпретируются PHP, у нас нет никакой гарантии, что это не изменится в будущем, когда другие приложения будут установлены на сервер. К тому времени можно забыть, что безопасность нашего сервера зависит от этих изменений.
+55
Безопасная загрузка изображений на сервер. Часть первая
10 min
138KTranslation
В данной статье демонстрируются основные уязвимости веб-приложений по загрузке файлов на сервер и способы их избежать. В статье приведены самые азы, в врят-ли она будет интересна профессионалам. Но тем неменее — это должен знать каждый PHP-разработчик.
Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.
Часто загрузка файлов без обеспечения надлежащего контроля безопасности приводит к образованию уязвимостей, которые, как показывает практика, стали настоящей проблемой в веб-приложениях на PHP.
Проводимые тесты показали, что многие веб-приложения имеют множество проблем с безопасностью. Эти «дыры» предоставляют злоумышленникам обширные возможности совершать несанкционированные действия, начиная с просмотра любого файла на сервере и закачивания выполнением произвольного кода. Эта статья рассказывает об основных «дырах» безопасности и способах их избежать.
Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.
Часто загрузка файлов без обеспечения надлежащего контроля безопасности приводит к образованию уязвимостей, которые, как показывает практика, стали настоящей проблемой в веб-приложениях на PHP.
Проводимые тесты показали, что многие веб-приложения имеют множество проблем с безопасностью. Эти «дыры» предоставляют злоумышленникам обширные возможности совершать несанкционированные действия, начиная с просмотра любого файла на сервере и закачивания выполнением произвольного кода. Эта статья рассказывает об основных «дырах» безопасности и способах их избежать.
+61
Графические фильтры на основе матрицы скручивания
6 min
43KUPD: Заголовок изменен, что бы более соответствовать теме статьи
В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие.
Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно о php и flash). Так же, статья будет интересна дизайнерам, использующим Adobe Photoshop, поскольку в нем имеется соответствующий фильтр (Filter-Other-Custom).
Примеры будут на языке PHP с использованием библиотеки GD. Теория, практика, примеры (осторожно, много картинок!)
В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие.
Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно о php и flash). Так же, статья будет интересна дизайнерам, использующим Adobe Photoshop, поскольку в нем имеется соответствующий фильтр (Filter-Other-Custom).
Примеры будут на языке PHP с использованием библиотеки GD. Теория, практика, примеры (осторожно, много картинок!)
+96
Пишем на картинках
7 min
14KВ течение последнего времени что-то часто стали мелькать статьи про обработку изображений на php. Скругленные края уже были, тени были, мокрый пол был, еще куча всего было.
А вот надписей вроде еще не было. Значит будут. :-)
Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами.
А вот надписей вроде еще не было. Значит будут. :-)
Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами.
+72
Браузерное оружие
2 min
1.9KСразу после рождественских выходных Билл Гейтс молча вошел в кабинет совещаний корпорации Microsoft и сел на своё место.
— Господа, — проговорил основатель Microsoft, — наша разведка доложила, что Google разрабатывает свой браузер. Это очень плохая новость. Скоро мы потеряем наши преимущества в браузерных технологиях, которые и так безнадежно устарели. Даже несмотря на седьмую версию эксплорера. Какие будут предложения?
Воцарилось молчание. Судя по всему, все присутствующие на совещании, не знали что сказать.
— Более того, — продолжил Билл Гейтс, нарушая тишину, — мы продолжаем подвергаться атакам этих красных террористов – Firefox и Opera. Они все еще слабы, но численность их пользователей увеличивается. Причем Google им в этом активно помогает. Наш Internet Explorer храбро сражается, но без достаточной поддержки его дни сочтены.
— Господа, — проговорил основатель Microsoft, — наша разведка доложила, что Google разрабатывает свой браузер. Это очень плохая новость. Скоро мы потеряем наши преимущества в браузерных технологиях, которые и так безнадежно устарели. Даже несмотря на седьмую версию эксплорера. Какие будут предложения?
Воцарилось молчание. Судя по всему, все присутствующие на совещании, не знали что сказать.
— Более того, — продолжил Билл Гейтс, нарушая тишину, — мы продолжаем подвергаться атакам этих красных террористов – Firefox и Opera. Они все еще слабы, но численность их пользователей увеличивается. Причем Google им в этом активно помогает. Наш Internet Explorer храбро сражается, но без достаточной поддержки его дни сочтены.
+85
Почему iPhone 3G провалился в России
1 min
3.8KСтив Джобс сидел в своем кабинете и раскладывал на своем компе пасьянс «Паук». Он уже почти закончил, когда в его кабинет без стука вбежал взмыленный директор по маркетингу:
— Стив! Я понял причину провала iPhone в России!
— Стив! Я понял причину провала iPhone в России!
+336
-14
Про Стива Джобса и свежие решения
2 min
940Как-то ранним утром Стив Джобс пришел на работу и тут же вызвал к себе директора по маркетингу.
— Ну чего там, с нашим айФоном? — спросил Джобс вытаскивая из кармана свою Нокию и кладя её на стол. — Как идут дела?
— Да так себе. Не очень успешно. Говорил же, надо было нормальный GPS сделать.
— Ладно. Я вот о чем подумал… — Стив Джобс расположился в кресле и положил ноги на стол. — Давненько мы мощных компьютеров не выпускали. С этими Эйрами и Фонами забыли про важный сегмент рынка. Надо сделать очень мощную графическую станцию. 8 гигабайт оперативы как минимум. А то скоро все дизайнеры на PC сбегут.
— Хорошая мысль… – маркетолог задумался. – А как назовем?
— Ну чего там, с нашим айФоном? — спросил Джобс вытаскивая из кармана свою Нокию и кладя её на стол. — Как идут дела?
— Да так себе. Не очень успешно. Говорил же, надо было нормальный GPS сделать.
— Ладно. Я вот о чем подумал… — Стив Джобс расположился в кресле и положил ноги на стол. — Давненько мы мощных компьютеров не выпускали. С этими Эйрами и Фонами забыли про важный сегмент рынка. Надо сделать очень мощную графическую станцию. 8 гигабайт оперативы как минимум. А то скоро все дизайнеры на PC сбегут.
— Хорошая мысль… – маркетолог задумался. – А как назовем?
+142
+6
Обрати свой взор сюда, коль вздумал ты писать на Хабре!
3 min
821Наверно стоило это опубликовать в разделе «Юмор», но поскольку все-таки тут есть некоторые рациональные мысли, оставлю как есть.
Я достаточно много сижу на хабре, и периодически читаю негативные камменты к статьям типа «Как же уже надоел этот ваш ...». Мне стало интересно, а какая же из тем вызывает наибольшее раздражение у читающих хабр. Поэтому я решил создать опрос на данную тему. Надо сказать, что опросы я недолюбливаю, потому что среди них мало бывают действительно полезных. Но данная идея мне показалась достаточно хорошей.
Что же получилось через сутки:
Я достаточно много сижу на хабре, и периодически читаю негативные камменты к статьям типа «Как же уже надоел этот ваш ...». Мне стало интересно, а какая же из тем вызывает наибольшее раздражение у читающих хабр. Поэтому я решил создать опрос на данную тему. Надо сказать, что опросы я недолюбливаю, потому что среди них мало бывают действительно полезных. Но данная идея мне показалась достаточно хорошей.
Что же получилось через сутки:
+109
+25
Маркетинговые ходы разработчиков CMS
3 min
1.7K — Наше подсолнечное масло не содержит холестерина!
— Разумеется, ни одно подсолнечное масло не содержит холестерина.
В данной статье я хочу рассказать о наиболее часто встречающихся рекламных ходах компаний-разработчиков коммерческих CMS и поясню, почему это лишь маркетинговые ходы и ничего более.
Как известно, залог успешного бизнеса – это маркетинг и реклама. Рассказать о преимуществах, недостатки представить как преимущества, а которые не получилось – скрыть. С системами управления контентом точно такая же история. Битрикс и UMI считаются лидерами рынка не потому, что у них действительно хорошие продукты, а потому что у них действительно хорошие маркетологи. В действительности, все CMS по своей сущности мало чем отличаются – они предоставляют совершенно одинаковые возможности, одинаковым образом. Но продукт надо как-то выделить среди остальных, надо что-то написать в разделе «Преимущества системы». Вот и придумывают достоинства, которых не существует или которые вообще не являются достоинствами. Далее о наиболее распространенных из них.
— Разумеется, ни одно подсолнечное масло не содержит холестерина.
В данной статье я хочу рассказать о наиболее часто встречающихся рекламных ходах компаний-разработчиков коммерческих CMS и поясню, почему это лишь маркетинговые ходы и ничего более.
Как известно, залог успешного бизнеса – это маркетинг и реклама. Рассказать о преимуществах, недостатки представить как преимущества, а которые не получилось – скрыть. С системами управления контентом точно такая же история. Битрикс и UMI считаются лидерами рынка не потому, что у них действительно хорошие продукты, а потому что у них действительно хорошие маркетологи. В действительности, все CMS по своей сущности мало чем отличаются – они предоставляют совершенно одинаковые возможности, одинаковым образом. Но продукт надо как-то выделить среди остальных, надо что-то написать в разделе «Преимущества системы». Вот и придумывают достоинства, которых не существует или которые вообще не являются достоинствами. Далее о наиболее распространенных из них.
+89
Пара идей о дальнейшем развитии микросайтинга
1 min
599Я задумался над тем, как реально микросайтинг можно внедрить в жизнь и что на основе него можно сделать. Уточню: речь идет о следующих основых приемах:
1. Можно отобразить картинку, которая находится на другом сайте
2. Можно поставить ссылку на другой сайт, который после загрузки перекинет тебя обратно
3. Данные пользователя на основе сессии
Вот какие у меня радились мысли для стартапов, которые реально могут быть интересными:
1. Можно отобразить картинку, которая находится на другом сайте
2. Можно поставить ссылку на другой сайт, который после загрузки перекинет тебя обратно
3. Данные пользователя на основе сессии
Вот какие у меня радились мысли для стартапов, которые реально могут быть интересными:
+3
Микроапплеты
1 min
546В своей прошлой статье — Микрохостинг микросайтов увжаемый ainu сказал:
Мне было бы приятно увидеть использование микросайтов где-нибудь ещё. Технология не моя лично. Она должна быть достоянием общественности.
Чтож, сказано — сделано. :-)
Представляю вашему вниманию следующий виток микросайтинга — микроапплеты.
Микроапплеты сделаны на основе микросайтинга, но в отличие от последнего больше похожи на выполнение программ. Т.е. это и есть программы, которые могут быть выполнены в … комментариях. Действительно, предложенных ainu механизмов вполне хватает — не только для создания микросайтов, а для реализации своего рода виртуальной машины, у которой есть оперативная память в виде сессии, и программа в виде php-скрипта.
И в качестве примера такого приложения я сделал реализацию всем вам хорошо известной игры — Сапер.
Мне было бы приятно увидеть использование микросайтов где-нибудь ещё. Технология не моя лично. Она должна быть достоянием общественности.
Чтож, сказано — сделано. :-)
Представляю вашему вниманию следующий виток микросайтинга — микроапплеты.
Микроапплеты сделаны на основе микросайтинга, но в отличие от последнего больше похожи на выполнение программ. Т.е. это и есть программы, которые могут быть выполнены в … комментариях. Действительно, предложенных ainu механизмов вполне хватает — не только для создания микросайтов, а для реализации своего рода виртуальной машины, у которой есть оперативная память в виде сессии, и программа в виде php-скрипта.
И в качестве примера такого приложения я сделал реализацию всем вам хорошо известной игры — Сапер.
+55
Алгоритмы организации тэгов
3 min
27KТэги – неотъемлемая часть всех современных сайтов и косвенный признак принадлежности сайта к пресловутому Вэб-Два-Ноль.
В статье я хочу рассказать об способах и алгоритмах тегирования информации.
В статье я хочу рассказать об способах и алгоритмах тегирования информации.
+36
Кто ты, о %username%?
1 min
645Навеяно комментарием ur001 в топике Return to innocence:
… Да, но чтобы заплюсовать человека надо зайти к нему в профиль, а там сразу видно кто и что он. И его текущую карму…
На самом деле, а почему бы просто в зависимости от характеристик пользователя таких как карма, сила, количество написаных топиков и комментариев, хабраналета и других не давать небольшую словесную характеристику хаброчеловеку?
… Да, но чтобы заплюсовать человека надо зайти к нему в профиль, а там сразу видно кто и что он. И его текущую карму…
На самом деле, а почему бы просто в зависимости от характеристик пользователя таких как карма, сила, количество написаных топиков и комментариев, хабраналета и других не давать небольшую словесную характеристику хаброчеловеку?
+27
Information
- Rating
- Does not participate
- Location
- Казань, Татарстан, Россия
- Date of birth
- Registered
- Activity