Pull to refresh

Автоопределение языка пользователя на modx

Здравствуй, Хабр!

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

Под катом написан плагин для этой задачи и его описание.
Читать дальше →

Простая защита веб-формы без капчи

До сих пор не задумывался о борьбе со спамом, т.е. приходит раз в неделю что-нибудь ну и ладно — ничего страшного. Но, прошло немного времени и ситуация со спамом сильно изменилась, не в лучшую сторону. Дело в том, что боты устроили на сайте «переписку», раньше был спам из набора символов и ссылок, теперь же это целые предложения на английском (новый вид спама?) которые вроде бы как содержат смысл.

Небольшой пример человекоподобного спама — "I'm only getting an answering machine generic cymbalta online 1st Dose ± Immediately buy cheap cipro Capture and Adjudication section on page 2.4.1 of the manual for additional purchase combivent December 2009 3.2.26 Variable 5.1” Request Format", и таких сообщений множество. Сначало подумал ООН проверяет новую схему кодов и паролей, попытался уловить смысл — безрезультатно.
Читать дальше →

BlackArch: аналог Backtrack на базе Arch

BlackArch
Оказывается, на основе Arch тоже разработан хакерский дистрибутив, который может составить конкуренцию популярному Backtrack. Он называется BlackArch Linux и полностью совместим с инсталляциями Arch.

BlackArch Linux создан специально для пентестеров и специалистов по безопасности. Он поддерживает архитектуры i686 и x86_64. В комплект установки сейчас входит 630 хакерских программ, и их число постоянно увеличивается. Одна из них — программа sploitctl для скачивания и поиска в архивах эксплоитов. С ее помощью можно получать обновления самых свежих уязвимостей. Исходный код этой программы, а также скриптов установки BlackArch и других инструментов можно посмотреть в репозитории Github.
Читать дальше →

Блокировка обновлений AV: temp-файлы (windows)

Приветствую всех. Одно из моих хобби — исследовать malware и следить за вялой технологической гонкой av и malware -вендоров.
Давно уже не секрет, что существует множество троянов, которые блокируют обновления антивирусов, чтобы остаться жить в системе подольше,
оттянув срок своего детекта антивирусом.
Я хотел бы рассказать только об одном из способов, который показался мне забавным из-за того, что не требует прав администратора, давая возможность запущенному из под Guest-аккаунта трояну заблокировать обновление баз некоторых AV.

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

Aлгоритм подбора новых идей

Я недавно подобрал одну идею и теперь предоставлю ее тебе на проверку. Если тебе эта мысль покажется интересной, то можно будет считать, что идея в какой-то степени объективно заслуживает внимания.
image
Тут же необходимо оговориться, что это максимум комнатные рассуждения, и, что хуже, все является просто попыткой объяснить одну штуку через другую, и в какой-то степени это просто подгон ответа. Звучит не очень хорошо, но, мне кажется, внимания все равно заслуживает.
Так вот, ты пробовал рассматривать совмещение биткоина и идей? Скорее всего нет. Они же имеют посредственное отношение друг к другу. Ну, по крайней мере я не очень хочу, чтобы весь этот текст оказался пустой тратой времени. Рассмотрим сначала второй елемент
Читать дальше →

Мое видение будущих языков программирования

Мне всегда казалось, что язык иделального программирования должен быть максимально приближен к нашей речи. Я рассмотрю на примере программы, которая ищет факториал числа. Вот как я вижу структуру этой задачи, и, в целом, всего языка:
Исходный код программы разбит на две части. В первой мы с помощью зарезервированных слов объясняем базовые понятия для нашей программы(в нашем случае объясняем, что такое факториал):

Factorial for N is prod from 1 to N

В данном случае мы зарезервировали слово Factorial , имея ввиду, что используя эту функцию, мы должны получить на выходе число (о чем говорит слово production — произведение).

Вторая часть программы — непосредственно «тело» программы (аналог begin...end в pascal).
read(N)
find(factorial(N))


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

Ремонт реле напряжения Digitop 48A


Попало ко мне как-то сгоревшее реле напряжения Digitop 48A, в котором неисправным оказался бестрансформаторный источник питания, который потянул за собой микроконтроллер ATtiny26L-8PU.
Заменив электролитические конденсаторы новыми с подобающим рабочим напряжением, тиристор BT169 на BT131, линейный стабилизатор 78L05 на 7805 и собственно микроконтроллер — принялся за написание прошивки.
Читать дальше →

[Не]умышленное вскрытие персональных данных

Не так давно у меня возникла потребность срочно декодировать md5 хэш. Первым делом обратившись в поисковую систему отетбыл найдет на первой странице, но мой взгляд приковала поддомен одного известного сайта — extdev. На котором в свою очередь на каждой странице всплывало консольное окно. Не долго думаю я решил зайти на свою страницу аккаунта на данном сайте.
И что же я увидел:
image

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

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

Лучшие вопросы Toster'а. Часть 1

Как вы уже знаете, часть Хабры под именем «Questions and answers» переродилась в нынеизвестный “Toster.ru” – удобный сайт со своими плюсами и минусами. Затрагивая минусы, мной был отмечен один недостаток: как любитель узнавать что-нибудь новое, хотелось просматривать лучшие вопросы. Каково было мое удивление, когда такого функционала обнаружено не было.

Решение было простым – Python + lxml + sqlite3. Алгоритм парсера прост и ничем не отличается от других парсеров и по сему, выложен не будет. По просьбам трудящихся – таки выложу код с комментариями.
Куда более интересен результат парсинга первых 5000 вопросов (дальше – больше):

  • 20 лучших комментариев по просмотрам
  • 20 лучших комментариев по рейтингу
  • 20 лучших комментариев по количеству ответов
  • 20 лучших комментариев (по лайкам)

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

Почему не нужно бороться с пиратством, или мнение Молодого Еврея о Старой Экономике

image

Я — еврей (к сожалению, только в душе), разработчик игры, приложения, ценитель музыки, фильмов и всего прекрасного и человек с активной гражданской позицией. И я считаю, что пиратство есть ни что иное, как воровство. Воровство идеи, разработки и продукта, в который вложен немалый труд разработчиков/музыкантов/режиссёров.
И именно эта каша из мыслей породила меня написать статью «о наболевшем».
Читать дальше →

На пути к системному администратору

Добрый вечер. Я написал этот пост для того, что бы рассказать о себе и почитать Ваш опыт в достижении (или еще нет) высокий целей или карьерного роста. Этот пост не являться хвастаньем или нытьем. Этот пост о простом человеке (мне), который хочет достичь профессиональных и карьерных высот, но не знает, на правильном ли пути. Хочу узнать мнение со стороны, что я делаю правильно, что нет, и какие приоритеты мне выставить для достижения высоких целей.

image

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

Что нового в SASS 3.3

Это статья для тех, кто уже использует в работе SASS.
А если еще не используете — то уже пора бы начать. (Не буду описывать как начать — в интернете много примеров).

Итак, что же принесет нам SASS 3.3


  • Sourcemaps
  • Улучшен селектор & (думаю это самое вкусное)
  • Дополнительные операции со списками
  • @at-root правило

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

«Аренда кода» или «Капля камень точит» — новая бизнес-модель для программистов

Что еще за бизнес-модель такая?


Бизнес модель капля камень точит

Я хочу создать сообщество программистов, члены которого в 30 лет уже будут обеспечены на всю жизнь.

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

Все облачное работает по принципу аренды, пора рассмотреть возможность аренды результата труда программиста.

Бизнес модель “Капля камень точит” (так я ее назвал) это комбинация бизнес-модели “Длинный Хвост” и “Сдачи в аренду” (мягкая версия “Приманка и крючек”).

Программист получает “Длинный хвост” от нишевых функций, которые он писал. Этот хвост складывается из регулярных платежей за аренду результатов его труда.
Читать дальше →

Настоящая многопоточность в PHP

image

Здравствуйте, дорогие пользователи Хабрахабра.

В одном из проектов мне понадобилось спарсить целый сайт, но страниц было настолько много, что парсер работал бы почти сутки.
И тогда меня посетила мысль — почему бы не реализовать всё на потоках? Поискав в интернете реализации многопоточности для PHP, я нашёл один шлак, и расстроился.
Но я не их тех, кто останавливается перед преградой — я твёрдо решил написать свою многопоточность, что бы мне это не стоило.
И вот, спустя двух дней мучений — я реализовал, не побоюсь этого слова, лучшее решение многопоточности для PHP.
Мой класс не требует особых прав, и работает на любом хостинге, который поддерживает curl.
Читать дальше →

JavaScript движок в 30 сотен строк кода

Вступление


На сегодняшний день в мире уже больше десятка разномастных движков JavaScript'a. Некоторые из них достигли таких мощностей, что в переваривании кода стоят на одном уровне с нативными решениями. Однако, у всех, ну или почти у всех, есть один недостаток — все они написаны на C\C++. Но ведь парням из мира управляемого кода .NET тоже хочется приобщиться к этому мейнстриму. Идея эта не нова и уже успела породить Jurassic, Jint и даже обёртку над V8 — JavaScript .Net. А теперь добавился ещё один…
Читать дальше →

Навигация в вебе в будущем

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

В чем суть: когда мы переходим с одной страницы на другую, текущая резко меняется на ту, на которую перешли. Еще, как вариант, бывает, что текущая плавно исчезает, а следующая плавно появляется. Но я решил пойти дальше. Что, если текущая страница будет не меняться на следующую, а трансформироваться в нее?

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

Собственно, гифка — transform.gif (≈2,8 МБ).
Читать дальше →

Коварный regex.exec

Натолкнулся сегодня на «грабли», достойные, как мне кажется, чтобы написать о них мини пост.

var myRegex = /abc/gi;
var myString = "hello abc";

var a = myRegex.exec(myString);
var b = myRegex.exec(myString);

Казалось бы, a и b должны содержать одинаковый результат, но нет.

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

DotNetFiddle – JsFiddle для .Net девелоперов

Это перевод статьи.

Я рад вам представить наш новый продукт — бесплатная онлайн песочница для .Net. Вы можете использовать её для тестирования разных идей, проверки кода, и отсылки кусков кода разработчикам по всему миру.

http://www.dotnetfiddle.net

Как появилась идея


Хотелось ли вам проверить какой-то код, но после часа поиска чего-то похожего на StackOverflow, вы решаете просто забыть об этом. Сильно много лишних действий…

  • Запустить Visual Studio.
  • Создать консольное приложение.
  • Добавить нужные reference.
  • Написать код.
  • Запустить его.
  • Если будет ошибка компиляции, то вернуться назад на 4 шаг.
  • Если все хорошо — радоваться.

Решение — DotNetFiddle


DotNetFiddle оставляет только один шаг:

  • Написать код


Список возможностей и скриншоты


Вместе с DotNetFiddle вы можете использовать IntelliSense, отсылать ваш код другим коллегам, и работать вместе с вашими коллегами онлайн над этим кодом. Парное программирование во всей его красоте.
Подробности