Search
Write a publication
Pull to refresh
4
0
xRay @xRay

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

Send message

KeygenME PWNED

Reading time1 min
Views9.4K
Наш конкурс на взлом KeygenME завершен, и пришло время подводить итоги.

Ответов было много, и на решение по призовым местам влияло несколько факторов. На первом месте, конечно же, было наличие самого правильно решения, на втором — временный диапазон, за который было отправлено решение (пришло много правильных ответов, и их нужно было как-то отфильтровывать) и третий критерий — стабильность работы кейгена.

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

ООП в JavaScript

Reading time4 min
Views40K
Хочу представить вам функцию-конструктор классов createClass.
Чем хорош этот конструктор:
1. Сам код выглядит более читабельным и понятным
2. Поддержка множественного наследования
3. Поддержка абстрактных методов
4. Наследование статических методов и свойств класса
5. Умный метод instanceOf (проверяет по всей цепочке классов)
Читать дальше →

Minecraft закончен

Reading time1 min
Views18K


После нескольких лет разработки Minecraft, наконец-то, дорос до полноценного релиза. Вчера Нотч объявил, что игра ушла на «золото» и будет официально представлена 18 ноября на первой конференции Minecon (это сборище фанов игры, названное по образцу известного фанатского фестиваля Comicon). Скорее всего, там же состоится официальная презентация iOS-и Android-версий.
Читать дальше →

Sketch – 100 секунд про Asus

Reading time1 min
Views705
Рискуя своей кармой, хочу поинтересоваться, интересна ли хабросообществу видеорубрика, в которой за 100 секунд в не самой гиковой форме рассказывается о какой-либо технологии, о бренде или о сервисе? Такой Sketch мог бы появляться каждый вторник. Пример прилагается — 100 секунд про историю Asus.
Читать дальше →

Хроника root.yandex.ru

Reading time2 min
Views8.4K

Несколько дней назад завершилась вторая Олимпиада Яндекса для Linux — администраторов.

Олимпиада состояла из трех туров.
Задачи, с которыми столкнулись наши игроки — из жизни, их ежедневно решают системные администраторы Яндекса.

Вопросы первого тура были сложные, и только 500 участников ответило хотя бы на один.
В итоге во второй тур прошли 36 человек, десять из них вышли в финал и приехали 11 ноября в московский офис Яндекса.

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


Финальное задание было настолько трудное, что нам пришлось дать дополнительное время, чтобы определить трех суперфиналистов. Двоих других участников определила жеребьевка среди игроков и викторина, где нужно было ответить на вопрос «Сколько системных администраторов работает у нас в компании?».

В суперфинале мы дали игрокам очень сложное практическое задание. С ним справился лишь наш победитель – он смог починить на сервере сеть, веб-сервер и неработающий ssl-сайт ructfe.org, остальные игроки справились только с сетью.

Победителем стал Валерий Терешко из Минска, второе место – у Владимира Русинова из Воронежа, на третьем месте – Вадим Гончаров из Томска.

После розыгрыша участники посетили один из шести наших дата-центров и вернулись в офис на торжественное вручение призов и традиционное для админов «пиво-пати».

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

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

Следите за новостями на сайте root.yandex.ru, в клубе Олимпиады или в Твиттере — #yaroot.

Оргкомитет root.yandex.ru

 

.

SimpleMvcCaptcha, или мой первый опыт Open Source

Reading time5 min
Views1.6K
Disclaimer!
Я ни в коем случае не претендую на звание разработчика идеальной капчи, равно как и на изгобретателя чего-то нового. Все, что здесь написано, было сделано мной для познавательных целей и open source. И да, я осознаю, что написать свою капчу — это изобрести велосипед.

С чего все началось


Совсем недавно я начал разрабатывать свой пока небольшой проект на ASP.NET MVC 3. Суть его заключается в том, что посетители могут добавлять на него свои сообщения, которые впоследствии появляются в публичном доступе (кому интересно, что стоит за этим запутанным объяснением — ссылка будет в конце).

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

Первое, что пришло мне в голову, была ReCaptcha от Google. Установив ее и некоторое время попользовавшись, я окончательно понял, что этот монстр — совсем не для меня и не для большинства адекватных людей, тем более русскоязычных (вывод некоторых изображений не только не читается машинно, он и людьми то не может быть прочитан). Поискав другие решения, я, к своему сожалению, не нашел чего-то нормального для MVC 3, простого и ненавязчивого в использовании. Были разные мануалы как сделать то или иное, но готового решения «взял и использовал» как-то не встретилось. Поэтому решил изобрести велосипед написать свою капчу.
Читать дальше →

В каждом .net приложении резервируется память для трех исключений

Reading time2 min
Views4K
На выходных заходил я к своему другу new_s в гости и он показал мне интересную вещь. Ему по работе нужно было анализировать дамп памяти .net приложения, где он искал утечки памяти и другое аномальное поведение и показал мне, что при старте любого .net приложения окружение резервирует память для трех исключений:
  • ExecutionEngineException
  • StackOverflowException
  • OutOfMemoryException

И это нормальное поведение. Почему?
Читайте дальше...

«Рамблер-Авиа»: новый способ планировать путешествия

Reading time1 min
Views11K
Сегодня мы запустили новый сервис «Рамблер-Авиа» — первый умный поиск по авиабилетам. Он умеет подсказывать даты путешествий и ищет билеты без лишних уточнений.



Мы переосмыслили заезженное понятие «гибкие даты» и придумали новые интерфейсы для поиска авиабилетов. В итоге, «Авиа» – единственный сервис, которым удобно пользоваться, даже когда точные даты вылета неизвестны.
Читать дальше →

Поднимаем на одном сервере несколько Ruby on Rails проектов под разными версиями ruby (Nginx + Unicorn)

Reading time4 min
Views17K
Здравствуйте, хабралюди!

Хочу поделиться с вами способом разворачивания нескольких приложений Ruby on Rails на одном сервере.
Поможет нам в этом RVM, Unicorn и Nginx.

Недавно заказчик попросил поставить Redmine к ним на сервер, на котором уже крутился проект на Ruby on Rails и использующий версию руби 1.9.2. А redmine работает максимум с ruby-1.8.7. Так как других проектов на сервер размещать не предполагалось, то там изначально поставили Nginx + mod_passenger. Как известно, используя mod_passenger на одном сервере не запустишь два приложения с разными версиями руби.
смерть пассажира и зачатие единорога

InstaCSS: удобный поиск по справочнику CSS

Reading time1 min
Views989
Для изучающих CSS есть несколько хороших сайтов с документацией и примерами использования, в том числе W3schools и MDN (Mozilla Developer Network). Разработчик Рафаэль Гарсиа сделал InstaCSS — очень удобный поиск по CSS-справочнику MDN. Это полнотекстовый поиск в стиле Google, с подсветкой кода и другими фичами, результаты обновляются по мере набора символов. Вся информация по запросу — на одной странице, так что не надо искать её по разделам документации.



Автор сделал проект за 24 часа, так что осталось ещё много багов. Он говорит, что на бэкенде используется MongoDB, откуда backbone.js вытягивает по JSON данные для клиентской стороны.

Код на github: github.com/rgarcia/instacss

JavaScript паттерны… для чайников

Reading time8 min
Views181K
Однажды вечером, сразу после того, как я закончил разбираться с наследованием в JS, мне пришла в голову идея, что пора бы заняться чем-нибудь посложнее — например паттернами. На столе внезапно оказалась книжка Gof, а на экране ноутбука появился труд с названием «JavaScript patterns».

В общем, спустя пару вечеров, у меня появились описания и реализации на JavaScriptе самых основных паттернов — Decorator, Observer, Factory, Mediator, Memoization (не совсем паттерн, а скорее техника, но мне кажется что она прекрасно в этот ряд вписывается) и Singleton.

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

Интеграция сервиса шаринга AddThis с Google Analytics

Reading time2 min
Views5.1K
В этом году в Google Analytics появился новый отчет Посетители > Соцфункции. Он, как можно догадаться, должен показывать взаимодействие с сайтом посредством социальных кнопок (like, share и т.п.)
Но для отслеживания каждой социальной кнопки необходимо было создавать функцию обратного вызова, которая бы посредством вызова метода _trackSocial и должна отслеживать нажатие на кнопку.
Об этом можно почитать в справке Google Analytics: http://code.google.com/intl/ru-RU/apis/analytics/docs/tracking/gaTrackingSocial.html
И это было не очень удобное решение, т.к. социальных кнопок на сайте может быть много и для каждой придется писать функцию.

Теперь же появилось более изящное и простое решение для отслеживания социального взаимодействия. А именно, интеграция с сервисом социальных кнопок AddThis. Этот сервис содержит достаточно большую базу социальных кнопок и широкие возможности по кастомизации своего виджета.

интеграции AddThis с Google Analytics...

Фоновое выполнение скрипта на PHP без crontab

Reading time4 min
Views84K
Озадачили меня тут написать демона на PHP. Т.е. скрипт, который будет заданное количество раз в заданное количество часов в случайное время (всегда случайное) выполнять определенные действия, и все это без использования cron'a.

До этого никогда не заморачивался, а тут после постановки задачи, начал было думать что так нельзя, что php скрипт надо вызывать браузером…ну задача то поставлена, надо выполнять.

Первая мысль — отключить ограничение времени выполнения скрипта. Запрещено хостером.

Вторая мысль — яваскриптом повторять аякс-запрос периодически (да хоть раз в секунду). — нельзя (требование заказчика).

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

Javascript в PDF

Reading time6 min
Views62K
Недалек тот час, когда PDF документы можно будет полноценно отображать средствами Javascript. При этом обратная возможность, а именно использование Javascript в PDF документах, существует уже очень давно. Об этом и пойдет речь в данной статье.
Читать дальше →

Ввод в программу иерархического списка

Reading time7 min
Views4.2K
Появилась задача — вводить в web-приложение элементы иерархического списка (например КЛАДР).

Когда работал с drupal, видел там модуль Hierarchical Select, реализующий эту функциональность.
Но хотелось сделать самому — для того, чтоб не привязываться к системам, которые мне полностью не понятны и вообще, интересно.

Поиск готового решения, не завязанного на какую-то существующую систему, дал что-то вроде
этого, что не устроило.

Топик не претендует на новизну и особую сложность исполнения.
Сделал за 2 часа.
Захотел поделится.
Возможно, кому-то пригодится.
Максимально все документировал и функции, описывающие источник данных, вынес в 2 метода:
— поиск детей (один уровень) по родителю
— поиск всех родителей ребенка по иерархии вверх
чтобы желающие могли использовать это для своих нужд.

Возможно, что-то подобное где-то и было, но быстро я это не нашел.
Итак, приступим.
Читать дальше →

Принципы юзабилити: понятно, удобно, комфортно. Коротко о главном

Reading time4 min
Views53K
В современном мире понимание основ юзабилити является необходимостью. Большинство посетителей сайта не совершают действий, которых от них ждут владельцы ресурсов. Люди не заказывают товар, не регистрируются, не подписываются на обновления и т.д. В чем причина такого поведения пользователей?
Причина проста – ресурс оказывается неудобным для пользователя. Например, для того чтобы «заказать» продукт, приходится пройти несколько страниц, а кнопку регистрации и вовсе невозможно обнаружить. Это делает ресурс неконкурентоспособным.
Как уменьшить количество отказов от использования сайта? Если проект нуждается в основательном подходе, можно обратиться в студию, к специалистам. Юзабилити-лаборатории предлагают не только различные варианты тестирования и проектирование интерфейса. А если бюджет ограничен, можно попробовать познать азы юзабилити самостоятельно.
Читать дальше →

Yii 1.1.8 — загрузка файлов с произвольным расширением с помощью CMultiFileUpload

Reading time1 min
Views4.2K
Доброго всем времени суток!

Недавно делая сайт на Yii обнаружили такую вот дыру в загрузке файлов на сервер с помощью CMultiFileUpload (за что отдельное спасибо Mx21): есть возможность взять файл с произвольным расширением, дописать в конец имени что-то вроде .jpg и потом залить на сервер виджетом CMultiFileUpload. Даже не смотря на то, что свойство 'accept' имеет, к примеру, значения 'jpeg|jpg|gif|png', т.е. не должно аплоадить ничего кроме такого рода картинок, происходило следующее: файл без проблем закачивался на сервер, причем .jpg в конечном файле обрезалось и на сервере оказывался исходный файл с тем расширением какое оно было до того как мы его переименовали.
Используемая нами версия фреймворка 1.1.8.

Лечится следующим образом:
В файле /framework/web/js/jquery.multifile.js нужно исправить строки 222-223:
          if(MultiFile.accept && v && !v.match(MultiFile.rxAccept))//{
            ERROR = MultiFile.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi)));

вернее заменить их на следующий код:
			var str=this.value;
			var pattern='\.';
			var pos = str.indexOf(pattern);
			for (var count = 0; pos != -1; count++)
				pos = str.indexOf(pattern, pos + pattern.length);
          
          
          if((MultiFile.accept && v && !v.match(MultiFile.rxAccept)) || count>1)//{
            ERROR = MultiFile.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi)));


Т.е. добавили проверку на количество точек в имени загружаемого файла, если более одной точки получаем сообщение об ошибке «Invalid file type».

Как решить проблему конфликта приложений

Reading time5 min
Views19K

Как установить две версии приложения на одном компьютере? Как решить проблему конфликта приложений? Как сделать приложение более безопасным для системы?
Как?
Читать дальше →

Information

Rating
Does not participate
Registered
Activity