Обновить
1
0
Александр@Funcraft

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

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

Переопределение функций в PHP 5.3

Время на прочтение2 мин
Охват и читатели11K
PHP 5.3 давно уже не новость и написано о нем прилично(да и приелся он как-то после выхода версии 5.4). Тем не менее, хотелось бы поставить акцент на одной его особенности.

Одной из самых ярких фич этой версии является поддержка неймспейсов, что повлекло за собой изменение парадигмы программирования на PHP. Соответственно многие, именитые и не очень, фреймворки начали переписывать свой код на новый лад. Данная статья как раз о том, к чему это все привело.

Читать дальше →

Выводим текст на HTML5 Canvas

Время на прочтение5 мин
Охват и читатели105K
HTML5 Canvas – очень обширная тема со многими “вкусностями”, о многих из которых уже писали и ещё будут писать. Поэтому, я хочу немного рассказать в этой статье, только об одной маленькой, и как на первый взгляд может показаться банальной темой – работа с текстом. Я хочу показать, что с ним почти также можно работать, как с обычным текстом в вебе, т.е. позиционировать, накладывать стили и градиенты, а также писать многострочные предложения легко и без проблем.
Читать дальше →

Канобувости, 135-й выпуск

Время на прочтение1 мин
Охват и читатели9.3K


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

Смотрите в этом выпуске:
MechWarrior Online – беззаконие роботехники
— Resident Evil Chronicles HD Collection – вирусная новость
— Papo & Yo – папочка уехал
BioShock Infinite – папочка вернулся
XCOM: Enemy Unknown– сложное поколение
Ссылка на корометражку Halo.
Читать дальше →

Модуль nginx для борьбы с DDoS

Время на прочтение6 мин
Охват и читатели68K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →

Quick brown fox jumps over the lazy dog

Время на прочтение1 мин
Охват и читатели11K
В английской типографике заметной популярностью пользуется фраза «quick brown fox jumps over the lazy dog» как панграмма, включающая все символы алфавита (причём символы «e», «r» и «u» — по два раза, символ «o» — четыре раза).

В переводе она означает «быстрая бурая лиса перепрыгивает ленивую собаку».

Моей фантазии никогда не хватало вообразить эту сцену происходящею в действительности сколько-нибудь правдоподобно до тех пор, пока я не натолкнулся в сети вот на этот анимированный GIF:

Читать дальше →

Защищаем сайт от атак на примере ХабраХабра

Время на прочтение5 мин
Охват и читатели17K


Рано утром Хабр «выкатил» своё новое обновление, и я с чистой совестью достаю эту статью из черновиков.
Вчера у меня случился epic fail и этот топик частично, включая строчку об апдейте выше, попал в паблик на пару секунд. За эти секунды топик успело плюсануть несколько человек.
Ещё раз, теперь публично, прошу прощения у администрации!
Совет остальным — НИКОГДА не храните в черновиках информацию вроде этой.


В последнее время в сети Интернет можно найти очень много пособий для «Начинающих хакеров», в которых подробно описываются все основные методы взлома сайтов. Думаете, веб-разработчики стали от этого умнее и предприняли все возможные методы для защиты? Я так не думаю.

В настоящей статье я хочу ещё раз поведать разработчикам о том, как ломают сайты, а чтобы вам не было скучно, я попутно буду ломать Хабр и подробно описывать, как я это делал. Мы рассмотрим такие интересные штучки, как «Активная XSS в профиле», «Бесконечное обнуление кармы», «Публикация топиков со значком 'Из песочницы'», «CSRF через Flash и дыру в Internet Explorer 6» и многое другое.

Все уязвимости уже исправлены. Ну или почти все. Поэтому, если вы найдёте очередную дыру, то пишите на support@habrahabr.ru — миф о том, что эту почту никто не читает всего лишь миф.
Читать дальше →

Азы социально-сетевого анализа (Social Network Analysis 101)

Время на прочтение4 мин
Охват и читатели20K
От переводчика. Автор этой публикации — Майкл Ву (Michael Wu), ведущий аналитик компании Lithium, специализирующийся в изучении социальных взаимодействий и онлайн-сообществ.


Чтобы понять, что такое «социально-сетевой анализ» (Social Network Analysis, SNA), нужно понимать, что такое «социальная сеть» и что такое «социальный граф». Говоря просто, социально-сетевой анализ — это способ изучения социальных сетей, а социальная сеть — это набор сущностей, между которыми есть определенные отношения. Социальные сети существуют с тех пор, как люди начали бродить по земле. По правде говоря, подобные структуры есть не только у людей, но и у социальных животных (например, у волков, львов, дельфинов, мышей и даже муравьев).

Безусловно, прежде всего нас интересуют такие сущности как люди, и такие отношения между ними как дружба (как на Facebook), совместная работа (как на LinkedIn), родство, общение и некоторые другие социальные взаимодействия. А в контексте SNA мы можем под социальным графом понимать просто визуализацию всего этого (я не собираюсь нагонять скуку формальным определением графа). В таком социальном графе каждая точка (или узел, или вершина) изображает человека, а ребро между двумя точками (людьми) изображает отношения между ними. А так как между людьми существует множество самых разных отношений, точно также существует множество разных социальных графов, изображающих эти отношения. Я покажу это на конкретном примере.
Читать дальше →

Перевод на русский язык презентации Apple от 7 марта 2012 года — The new iPad

Время на прочтение1 мин
Охват и читатели35K
image

7 марта 2012 года состоялась очередная презентация компании Apple. Канал GTV представляет перевод презентации нового iPad на русский язык.
Читать дальше →

Познание и внутренний опыт пользователя

Время на прочтение5 мин
Охват и читатели8.3K

Предлагаю вашему вниманию вольный перевод статьи Jordan Julien Cognition & The Intrinsic User Experience

За последние несколько лет было много дискуссий, вокруг того, какой пользовательский опыт может быть разработан. Каким бы ни был UX, пользователь всегда будет иметь возможность пройти по своему, уникальному пути. Все потому, что когнитивное сопротивление является уникальным для каждого пользователя. Создание интуитивно понятного интерфейса является очень важным шагом, но мало кто может точно сказать, что именно делает интерфейс интуитивно понятным. Здесь понятия Когнитивной Нагрузки и Когнитивного Барьера играют большую роль.
Читать дальше →

Практикум использования контрольных карт Шухарта

Время на прочтение3 мин
Охват и читатели108K
Недавно я публиковал здесь свой слайдкаст с рассказом о 6-сигмах, контрольных картах Шухарта и людях снежинках, где достаточно простым языком, местами злоупотребляя сквернословием, под 20-ти минутный хохот слушателей рассказывал о том, как отделить системные вариации от вариаций, вызванных особыми причинами.

Теперь хочу подробно разобрать пример построения контрольной карты Шухарта на основе реальных данных. В качестве реальных данных я взял историческую информацию о завершенных личных задачах. Эта информация у меня есть благодаря адаптации под себя модели личной эффективности Дэвида Аллена Getting Things (про это у меня тоже есть старый слайдкаст в трех частях: Часть 1, Часть 2, Часть 3 + Excel-табличка с макросами для анализа задач из Outlook ).

Постановка задачи выглядит так. У меня имеется распределение среднего числа завершенных задач в зависимости от дня недели (ниже на графике) и нужно ответить на вопрос: «есть ли что-то особенное в понедельниках или это всего лишь погрешность системы?»

image

Ответим на этот вопрос при помощи контрольной карты Шухарта – основного инструмента статистического управления процессами.
Читать дальше →

Что нас ждет в Joomla Framework 12.1

Время на прочтение3 мин
Охват и читатели3.8K
Возможно еще не все осознали, но Joomla давно разделилась на две части — Joomla CMS и Joomla Framework. Последний имеет версию 11.4, но усиленно пилится версия 12.1. Изначально планировалось, что фреймворк будет выходит раз в квартал, однако в этот год решили выпустить только три версии — 12.1, 12.2, 12.3. Соответственно, 12.1 выйдет 18 апреля. Что же нас в ней ждет?
Читать дальше →

Запланированная отправка постов (php, mongo, cron, regexp)

Время на прочтение2 мин
Охват и читатели2.1K
Добрый день.

Недавно мне пришлось писать страницу отправки постов на стены социальных сетей. Была поставлена задача постить на стену в определенное время а не сразу.

Я написал страницу с полями для выбора соц сетей, текстом сообщения и самим полем для ввода времени отправки. Кроме обычного календаря с выбором даты и времени отправки, я добавил еще одно поле с вводом критерия отправки по правилу cron.

Шаблон * * * * *

После этого встал вопрос — как получить только нужные поля для отправки?
Читать дальше →

Тьюринговская трясина

Время на прочтение4 мин
Охват и читатели6K
Бойтесь Тьюринговской трясины, в которой всё возможно, но ничего конкретного нельзя сделать просто.
Алан Перлис

Что такое Тьюринговская трясина? Это состояние, в котором программа становится столь могущественной, столь обобщенной, что усилия по решению с её помощью какой-либо конкретной задачи равны или превосходят затраты на написание с нуля программы, которая решает только данную задачу.
Читать дальше →

Nette PHP Framework: первое знакомство

Время на прочтение3 мин
Охват и читатели12K
Логотип фреймворка Nette Было очень приятно совершенно случайно обнаружить сайт этого фреймворка во второй половине рабочего дня. Новые фреймворки появляются редко, а тем более редко попадаются механизмы, которые нравятся с первого взгляда. На Хабре описания Nette я не нашел, поэтому поспешил поделиться своей находкой с Вами.

Во-первых, мне сразу приглянулось название. Nette. Это почти как Latte. Только Nette. Как оказалось позднее, есть и Latte — собственный встроенный подающий надежды шаблонизатор. Ого.
Читать дальше →

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

Время на прочтение8 мин
Охват и читатели8.3K
В библиотеке Code Contracts, которая любезно предоставляет возможности контрактного программирования на платформе .NET, для задания предусловий и постусловий используются вызовы статических методов класса Contract. С одной стороны – это хорошо, поскольку альтернативная реализация на основе атрибутов была бы слишком ограниченной. С другой стороны – это добавляет определенные сложности, когда дело касается контрактов интерфейсов или абстрактных методов, которые, по своей природе, не содержат никакого кода, а значит и вызывать методы просто не откуда.

Решается эта с помощью двух атрибутов: ContractClassAttribute, который вешается на интерфейс или абстрактный класс, и ContractClassForAttribute – который вешается на сам контракт.
Читать дальше →

Идентификация javascript зловреда

Время на прочтение3 мин
Охват и читатели3.3K
На одном сайте на поддержке в js был обнаружен странный код, точнее было понятно что это зловред: аваст выдал предупреждение, а консоль показала что есть соединение с несколькими левыми сайтами.

Как вредоносный код попал на сайт не так важно, предполагаемая дыра уже закрыта, но, прежде чем окончательно удалять код, я решил посмотреть что же он такого делает.
Читать дальше →

MariO — релиз

Время на прочтение1 мин
Охват и читатели8.5K
Устали от политики — вот довольно интересное занятие на сегодня (да и не только).

Mari0 — это довольно удачное сочетание игр Марио и Портал. Быть может кто также ждал релиз этой игры? Так вот — он сегодня. Что примечательно — можно скачать полные исходники, вместе с шейдерами, звуком, графикой. Написана на Lua, на движке для 2D игр LÖVE. Все запаковано в файл с раcширением .love, что по сути есть zip архив, можно распаковать и посмотреть что там внутри на глаз. А можно сходить и посмотреть что это за зверь сюда: https://love2d.org/.

Игра доступна для Windows, Linux и MacOS.

Для пользователей Windows чтобы игра работала может понадобиться vcredist.

Читать дальше →

Пишем плагины для Android

Время на прочтение4 мин
Охват и читатели7.7K
По долгу службы мне уже полтора года доводится писать для платформы Android, и вроде бы знания мои в данной области обширны, но и на хабре объем уже охваченных тем не мал. В общем-то после долгих рассуждений решил я поведать хабралюдям о данной теме.
Читать дальше →

Тестируем в браузере с помощью Geb

Время на прочтение10 мин
Охват и читатели14K

Geb на практике


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

Browser.drive(driver: new InternetExplorerDriver()) {

    go "http://www.google.com"

    $('form', action:endsWith('/search')).q = 
                    'тестирование при помощи geb и spock'
    $('button', value:'Поиск').click()
    waitFor { $('#search') }
    assert $('#search').size() == 1
    assert $('#search').find('li.g a.l').size() > 0
    println "Первый результат: " + $('#res').find('li.g a.l', 0).text()
}.quit()

Мне кажется, у таких тестов высокая степень читаемости — неважно даже, какой это язык. Можно по такому вот образцу написать еще несколько подобных же тестов, не имея вообще никакого понятия о Geb, Groovy и о том, как это работает. Но для полного понимания немного углубимся в основы.
Читать дальше →

Insurgent Games делает все игры бесплатными и переводит в Open Source

Время на прочтение2 мин
Охват и читатели3.1K
Компания Insurgent Games опубликовала исходный код всех игр под Android и iOS на Github, и теперь любой разработчик может использовать этот код в своих собственных проектах. Cами игры в Android Market и iOS App Store стали бесплатными.

Студия Insurgent Games основана в 2009 году двумя разработчиками из Сан-Франциско. Несколько лет они с удовольствием занимались любимым делом и создавали замечательные игры. Но за прошедшее время ребята поняли: чтобы хорошо зарабатывать на продаже мобильных приложений, нужен не только талант, но и большая удача. Им так и не удалось выйти на уровень заработка, достаточный для оплаты съёмной квартиры в Сан-Франциско.

Так что друзья решили заняться другими проектами: один пошёл на работу в EFF, а второй ушёл во фриланс как дизайнер. Чтобы окончательно порвать с прошлым, они отдают двухлетнюю работу в общественное достояние, под лицензией GNU GPL. Наверное, это решение было принято не без влияния того, который ушёл в EFF.
Список игр, описания, скриншоты и ссылки на Github

Информация

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