Как стать автором
Обновить
24
Карма
0
Рейтинг
vantoozz @vantoozz

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

  • Подписчики
  • Подписки
  • Публикации
  • Комментарии

Как я SQLAlchemy удобной сделал

Разработка веб-сайтов *Open source *Python *
Из песочницы

Не секрет, что SQLAlchemy — самая популярная ORM на Python. Она позволяет писать куда более продвинутые вещи, чем большинство Active Record собратьев. Но плата за это — более сложный код, и в простых задачах вроде CRUD это напрягает.


О том, как я сделал Алхимию удобной, воспользовавшись опытом лучших Active Record ORM, читайте под катом.


Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры 47K
Комментарии 22

Достаточно Git-а, чтобы быть (менее) опасным

Git *Системы управления версиями *GitHub
Из песочницы
imageТы просто-напросто ненавидишь Git? Ты абсолютно счастлив с Mercurial (или, фу, с Subversion), но раз в месяц тебе приходится отважно сталкиваться с Git, потому что каждый, даже его чертова собака, теперь использует GitHub? Тебя терзают смутные подозрения, что половина всех команд Git на самом деле удалят всю твою работу навсегда, но ты не знаешь какие именно и не хочешь проводить три недели, углубляясь в документацию?

Хорошие новости! Я написал тебе этот изумительный Интернет-пост. Я надеюсь, что смогу размазать достаточно Git-а по твоему лицу, чтобы понизить вероятность сделать что-то непоправимое, а так же уменьшить твой страх что-то сломать. Этого должно быть также достаточно, чтобы сделать документацию Git немного более понятной; она крайне тщательно и глубоко проработана и очень глупо, если ты все еще не прочитал половину.

Я постараюсь излагать коротко, но также, чтобы это было потенциально полезно тем людям, кто вообще никогда не сталкивался с контролем версий, поэтому повсюду будет разбросан 101 совет. Не бойся! Я не думаю, что пользователи Mercurial понятия не имеют, что такое патч.
Но подожди! Там еще...
Всего голосов 131: ↑103 и ↓28 +75
Просмотры 128K
Комментарии 365

Интервью со skype-мошенником

Информационная безопасность *Мессенджеры *
Несколько дней назад Сергей Доля рассказал о том, как мошенники взломав скайп его друга, начали рассылать сообщения по контакт-листу с просьбой перевести денег. За несколько часов злоумышленникам по оценкам самого Доли удалось получить более 250 000 рублей. Об этом также писал tjournal.



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

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

Из статьи Доли мне запомнился скриншот, на котором кто-то из его друзей просит мошенников дать интервью, а они отказываются. Ну и раз представился такой шанс, я тоже решил попросить дать интервью. Неожиданно, мне удалось получить ответы на многие интересные вопросы. Ниже я привожу наш диалог в незначительной художественной обработке.
Читать дальше →
Всего голосов 194: ↑172 и ↓22 +150
Просмотры 287K
Комментарии 186

Автоматическое оповещение читателей о новостях с помощью ВКонтакте

Социальные сети и сообщества
Из песочницы
Tutorial
Вторая часть

Предисловие


Те из вас, кто пользуется социальной сетью ВКонтакте и подписан на официальную страничку Хабры в ней, заметили, что все новые топики с главной появляются на страничке в виде сообщений-ссылок:
vk

Так вот, если у вас есть свой блог и вы хотите на своей личной страничке публиковать такие же сообщения-ссылки автоматически — топик может быть вам интересен. Сегодня мы попробуем публиковать простые сообщения ссылки, а далее добавлять к ним «превью»-картинки.
Читать дальше →
Всего голосов 103: ↑73 и ↓30 +43
Просмотры 25K
Комментарии 57

Качаем с Народ.Диска без капчи и без яндекс.бара

IT-компании
Как известно, чтобы скачать файл с Народ.Диска, необходимо либо ввести капчу, либо установить яндекс.бар. А если не хочется, чтоб яндекс.бар мозолил глаза(либо любимый браузер — опера)? Да, его можно скрыть, но зачем он тогда вообще нужен, если используется только для скачки файлов с Народ.Диска?
А можно обойтись и без него, при этом скачивая файлы без ввода капчи в любом удобном браузере, позволяющем изменять юзер-агент.
Читать дальше →
Всего голосов 128: ↑119.5 и ↓8.5 +111
Просмотры 7.9K
Комментарии 103

Программирование на Android для web разработчика или быстрый старт для самых маленьких. Часть 1

Разработка под Android *
Из песочницы
Доброго времени суток.

Данный hello world ориентирован на публику которая проявляет интерес к данной теме (Android), но страх перед java не позволяет взяться за разработку. Существует возможность создавать приложения для Android на html5 (phonegap), или php (PFA), но полноценное приложение возможно написать только на Java.

О приложении


Приложение которое будет описано умеет следующее:

1. Запуск из «меню приложений» вашего смартфона
2. Регистрация используя удаленный сервер
3. Авторизация
4. Листинг данных получаемых с сервера
Читать дальше →
Всего голосов 45: ↑28 и ↓17 +11
Просмотры 46K
Комментарии 4

Путь JavaScript модуля

Разработка веб-сайтов *JavaScript *


На момент написания этой статьи в JavaScript еще не существовало официальной модульной системы и все эмулировали модули как могли.

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

Вот в JavaScript своя атмосфера — в языке нет официальных модулей, более того все файлы лежат удаленно, один поток приложения. Приходится постоянно решать какие-то странные проблемы с загрузкой, хитро паковать модули в один файлы, чтобы ускорить время загрузки. Бывает, что нужно воевать с двойными стандартами, адаптировать модули другого формата.

Дело в том, что раньше не думали, что на JavaScript можно делать огромные проекты, а не просто «пропатчить DOM», поэтому о модулях не думали. Да и вообще не думали о будущем. И тут Внезапно будущее нагрянуло! Все вроде-бы уже есть, а модули в JavaScript, мягко говоря, запаздывают. Поэтому разработчикам приходится крутиться и выдумывать какие-то эмуляторы модульности.

Думаю многие из вас читали прекрасную статью Addy Osmani Writing Modular JavaScript With AMD, CommonJS & ES Harmony, которая стала одной из глав его книги Learning JavaScript Design Patterns в этой статье рассказывается про «современные» JavaScript модули или же читали достаточно старую статью JavaScript Module Pattern: In-Depth 2010 года про «старые» модули.

Я не буду переводить эти статьи и не буду делать из них солянку. В своей статья я хочу рассказать о моем модульном пути. О том как я проделал путь от «старых» модулей к «новым» и что использую сейчас и почему.
Читать дальше →
Всего голосов 188: ↑185 и ↓3 +182
Просмотры 117K
Комментарии 71

Введение в разработку WinRT-приложений на HTML/JavaScript. От шаблона к приложению с данными

Блог компании Microsoft
Tutorial
Этой статьей мы открываем серию материалов, посвященных азам разработки WinRT-приложений на HTML/JS для Windows 8. Мы последовательно пройдем путь от стартового практически пустого шаблона к полноценному приложению с серверной частью и живыми плитками.

Первая часть посвящена созданию простой версии приложения, читающего внешние данные через RSS-каналы на базе стандартного шаблона. В результате должен получиться работающий прототип приложения, способный показывать новости из нескольких RSS-потоков и отображать их на трех типах страниц: хаб (первая страница), группа и детали.

Создание приложения из шаблона


Откройте Visual Studio 2012, выберите создание нового проекта (File -> New -> Project…). Далее в шаблонах выберите проект на JavaScript -> Windows Store. Укажите, что будете использовать шаблон Grid App.


Читать дальше →
Всего голосов 31: ↑27 и ↓4 +23
Просмотры 18K
Комментарии 12

Автомасштабирование в Amazon Web Services: EC2 + CloudWatch

Блог компании EPAM Amazon Web Services *
Добрый день!

Настройка автомасштабирования на основе Amazon EC2 это очень интересная задача, которую я когда-то решил и теперь применяю на практике. Существует много возможных вариантов, но я рассмотрю самый простой из них: горизонтальное масштабирование одного сервера под одним балансировщиком.

В качестве инициатора маштабирования будет выступать Cloud Watch. Метрикой будет наша кастомная метрика Load Average.

Итак, начнём-с. Первое, как тру линуксоид, я советую и рекомендую использовать в настройке автоскейлинга утилиты командной строки (Command Line Tools — CLT) по следующим причинам:
  • из CLT можно сделать всё;
  • удобнее копипастить в консоль, чем кликать мышкой.

Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 14K
Комментарии 17

HOLO — The Music Amalgamation System

SQL *C# *Математика *
HOLO — приставка от греческого ὅλος, «весь».
Введение

Не без волнения рад представить вашему вниманию свою разработку, позволяющую объединять музыкальную библиотеку в единое целое с целью поиска «похожей» музыки.
Ещё несколько лет назад, на пике самостоятельного изучения MATLAB, мне захотелось создать программу, которая позволяла бы по заданному образцу музыки находить другие композиции «в том же духе». Куча уважительных причин заставляли откладывать реализацию всё дальше и дальше, но в какой-то момент дело сдвинулось с мёртвой точки. В результате, слегка изменив основу для разработки, первая версия программы была сделана.
Длинная статья
Всего голосов 75: ↑73 и ↓2 +71
Просмотры 21K
Комментарии 39

Создание ознакомительного поискового движка на Sphinx + php

Sphinx *
Tutorial

Предыстория


Раньше для поиска по сайту мы использовали обычный fulltext поиск. Но в определенный момент он перестал нас устраивать и мы решили опробовать альтернативную технологию поиска: Sphinx. К сожалению, у сфинкса совсем нет русской документации, поэтому эта статья — аналог статьи Build a custom search engine with PHP, только на русском языке и для моего локального окружения (windows 7, mysql/php)
Статья состоит из 4 частей:
  1. Краткий рассказ про подготовку базы для поиска.
  2. Рассказ про первоначальную установку и настройку сфинкса
  3. Индексирование базы и тестовый поиск из командной строки
  4. Тестовый поиск из php

Читать дальше →
Всего голосов 82: ↑73 и ↓9 +64
Просмотры 97K
Комментарии 59

Ключевое слово this в javascript — учимся определять контекст на практике

JavaScript *Программирование *
Tutorial
По просьбам некоторых читателей решил написать топик про контекст в javascript. Новички javascript часто не понимают значение ключевого слова this в javascript. Данный топик будет интересен не только новичкам, а также тем, кто просто хочет освежить данный аспект в памяти. Посмотрите пример ниже. Если вы затрудняетесь ответить на вопрос «что будет выведено в логе» хотя бы в одном из пунктов или хотите просто посмотреть ответы — добро пожаловать под кат.

var f = function() {
    this.x = 5;
    (function() {
        this.x = 3;
    })();
    console.log(this.x);
};

var obj = {x: 4, m: function() {
    console.log(this.x);
}};


f();
new f();
obj.m();
new obj.m();
f.call(f);
obj.m.call(f);

Читать дальше →
Всего голосов 111: ↑108 и ↓3 +105
Просмотры 168K
Комментарии 122

Импортирование данных класификатора ОКАТО в базу MySql

MySQL *Программирование *
Из песочницы
Возникла у меня необходимость добавить к моему приложению справочники с регионами России и городами. Первая идея которая меня посетила это поискать готовые файлы XML с регионами и городами в интернете, и в случае успеха импортировать данные в мои таблицы. Оптимизма поубавилось когда я начал искать. Конечно никто для меня специально не готовил эти данные, но это и не удивительно. Имея уже однажды опыт импортирования данных из КЛАДР в SqlServer, в структуру отличную от КЛАДР, я решил что придется снова повторить подвиг и организовывать импорт из КЛАДР в мою структуру. Я прекрасно помнил и тот факт что в КЛАДР данные хранятся в таблицах DBF, а импортировать данные
Читать дальше →
Всего голосов 4: ↑1 и ↓3 -2
Просмотры 6.4K
Комментарии 6

Понимание ООП в JavaScript [Часть 1]

Блог компании Enterra JavaScript *ООП *
Перевод
Tutorial
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

Одна из таких особенностей — это реализация прототипного наследования. Этот простой концепт является гибким и мощным. Он позволяет сделать наследование и поведение сущностями первого класса, также как и функции являются объектами первого класса в функциональных языках (включая JavaScript).

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →
Всего голосов 129: ↑119 и ↓10 +109
Просмотры 324K
Комментарии 71

WebServer как тестовое задание

Разработка веб-сайтов *Программирование *C++ *

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


Не смотря на то, что моя работа в данный момент связана с настольными приложениями, меня в последнее время заинтересовали «серверные технологии». Некоторый серфинг интернета, чтение man’ов и попытки написания чего-то сервероподобного для себя — это все, что было сделано за последнее время, так как нет четкой цели. Придумав себе интересную задачу можно не плохо поднять свой уровень навыков.

В один из моментов, когда мне стало окончательно скучно на работе от рутины, я поставил галку на одном из известных ресурсов поиска работы, что не против посмотреть на рынок, вдруг, что интересное попадется… Как результат некоторое количество предложений с вакансиями, на тему: «Возможно это Вас заинтересует». Среди таких предложений и пришло предложение с тестовым заданием. Тестовое задание – написать WebServer’а на C++ под Linux с реализацией HTTP–протокола; простенький…
Читать далее
Всего голосов 99: ↑93 и ↓6 +87
Просмотры 69K
Комментарии 23

Масштабирование веб-приложений с помощью HMVC

Kohana *
Перевод
Последние десять лет мы наблюдаем второй цикл веб-дизайна – сайты превращаются в приложения и уже практически не появляется новых проектов, не обладающих некой долей интерактивности. Увеличение сложности ПО, разрабатываемого для интернета, вызвало необходимость в структурированном и взвешенном проектировании приложений.

На сегодняшний день наиболее часто используемым паттерном проектирования сайтов является Модель-Вид-Контроллер (MVC). Повсеместное его использование отчасти вызвано успехом и популярностью фреймворка Ruby on Rails. Сейчас MVC является практически синонимом веб-разработки среди всех платформ.

При выполнении задач, активно нагружающих процессор, современные сайты все больше полагаются на выделенные ресурсы. Этому, в частности, поспособствовало открытие компаниями Amazon и Google облачных сервисов, которые позволяют разработчикам существенно уменьшить нагрузку на процессоры их собственных серверов. Каждый сервис обычно проектируется в виде отдельного элемента ПО, который запускается внутри своего домена и использует свои собственные ресурсы.

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

Для уменьшения первоначальных вложений обычно принимают решение о том, что приложение должно быть спроектировано в виде целостной программы, содержащей все требуемые функции. Если сайт быстро обретет популярность, это станет проблемой. У меня остались не очень приятные впечатления от рефакторинга плохо масштабируемых кодовых баз. К тому же, это может потребовать большого количества ресурсов и денег. В идеале приложения должны расти по мере необходимости и не требовать в процессе этого крупных финансовых затрат.
Читать дальше →
Всего голосов 58: ↑49 и ↓9 +40
Просмотры 17K
Комментарии 41

Новые 5 способов ускорить запросы API Facebook

Facebook API *
Прошлой осенью я публиковал на Хабре пост Пять способов ускорить запросы API Facebook на практике, который оказался неплохим сборником рецептов. За это время Facebook API сильно изменился, став еще лучше. Теперь я редко встречаю задачи, с которыми я бы не смог справиться за один HTTP запрос к API. А все благодаря новым возможностям, о которых я и расскажу сейчас.

image

Вот какие способы были в прошлый раз:
  1. Запрашиваем только необходимые поля
    me?fields=id,name,birthday
  2. Запрашиваем данные нескольких объектов в одном запросе
    ?ids=4,501012028
  3. Используем фильтрацию и пагинацию
    me/friends?limit=10&offset=10
  4. Используем запросы FQL
    fql?q=SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
  5. Отправляем Batch Request с несколькими запросами
    batch=[{«method»:«GET», «relative_url»:«me»},{«method»:«GET», «relative_url»:«me/friends?limit=50»}]

Читать дальше →
Всего голосов 64: ↑60 и ↓4 +56
Просмотры 19K
Комментарии 13

Основные принципы работы с MVC Framework Catalyst

Perl *Разработка веб-сайтов *
Из песочницы
Предисловие
На Хабре очень мало, точнее совсем нет статей о таком замечательном MVC фреймворке, как Catalyst. И поэтому свою первую статью я решил посвятить именно ему.
Здесь я описал основные принципы для работы с Catalyst на примере простенького веб-приложения, так называемый быстрый старт для освоения данного фрейморвка

Введение
Catalyst — это мощный MVC фреймворк для разработки веб-приложений на Perl.
Пару слов об MVC (Model/View/Controller):
  • Модель (Model) — содержит только данные и методы для работы с ними.
  • Вид(View) — отвечает за то, как именно эти данные будут выглядеть.
  • Контроллер(Controller) — управляет связью между системой и пользователем, а также контролирует необходимые взаимодействия при работе приложения.

Catalyst — содержит обширное количество модулей CPAN, которые облегчают разработку веб-приложения на языке Perl.

В чем состоит простота при использовании данного фреймворка?
Читать дальше →
Всего голосов 17: ↑14 и ↓3 +11
Просмотры 7.2K
Комментарии 14

Минимакс на примере игры в зайца и волков

Программирование *Алгоритмы *
image Данная статья предназначена для разъяснения сути фундаментальных методов построения и оптимизации «искусственного интеллекта» для компьютерных игр (в основном антагонистических). На примере игры в зайца и волков будет рассмотрен алгоритм «Минимакс» и алгоритм его оптимизации «Альфа-бета отсечение». Помимо текстового описания, статья содержит иллюстрации, таблицы, исходники, и готовую кроссплатформенную игру с открытым кодом, в которой вы сможете посоревноваться с интеллектуальным агентом.
Читать дальше →
Всего голосов 81: ↑77 и ↓4 +73
Просмотры 77K
Комментарии 17

Как правильно сортировать контент на основе оценок пользователей

Блог компании Дарудар Алгоритмы *
Перевод


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


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

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

Читать дальше →
Всего голосов 458: ↑423 и ↓35 +388
Просмотры 85K
Комментарии 134

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность