Pull to refresh
6
0
slayerhabr @slayerhabr

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

Send message

MongoDB: Создание, обновление и удаление документов

Reading time3 min
Views78K
В рамках чтения мной книги “MongoDB: The Definitive Guide” Kristina Chodorow and Michael Dirolf, решил выписывать основные моменты из глав, для лучшего освоения материала. Возможно, кому-то это тоже будет полезно.

Insert



Insert — базовый метод для добавление информации в MongoDB. Для того, чтоб добавить документ в коллекцию делаем вот так:

> db.foo.insert( { “bar” : “baz” } );

В таких ситуациях, когда нужно добавить несколько документов, для более быстрой вставки желательно использовать, так называемые, batch insert’ы (групповая вставка)

> db.foo.insert( { “arr” : [ { a : 1 , b : 1 } , { a : 2 , b : 2 } ] } );

Грубо говоря, просто вставляем массив.
Читать дальше →

Цветовые схемы в Vim

Reading time3 min
Views40K
Про vim написано столько, что трудно себе представить, что какие-то темы остались неосвещёнными.Ан нет… Есть кое-что о чём написано совсем немного.Восполняем пробел. Я надеюсь что эта заметка понравится вимоводам и вимоманам.
Читать дальше →

Как создать ТЗ для программиста

Reading time6 min
Views110K
Рекомендации геймдизайнеру от программиста (архитектора).


Вступление

Компьютерные игры — относительно молодая отрасль, которая в перспективе сменит киноиндустрию, так-же как кинофильмы заменили театр. Создание игры — это коллективное творчество, во многом напоминающее создание кинофильма. Кроме того, создание компьютерных игр — одна из самых сложных IT задач, поскольку она включает все себя практические все IT области.

Все слышали про pre poduction, но мало кто знает как именно это происходит. И если про стадию разработки написано много, а про стадию издания — еще больше, то про стадию планирования известно очень мало. В лучшем случае вам посчастливится ознакомится с результатами планирования. А вот как были достигнуты эти результаты? — загадка во тьме.

Этот документ является результатом «разбора полетов» после написания игры Звездная арена для социальных сетей. В этом документе я попытался упорядочить список проблем и решений к которым я и Александр пришли в процессе совместной работы над игрою. Кроме того этот документ является частью большой работы по выстраиванию рабочего процесса создания компьютерных игр.

Я намеренно оставил за кадром другие документы: концепцию, экономическое обоснование и ТЗ для других исполнителей. Это позволило сфокусироваться на одной теме и осветить ее и только ее достаточно подробно.

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

HOWTO: свой бизнес в США из России

Reading time6 min
Views158K
    Наверняка многие из нас хоть раз думали про себя: «Черт побери, и везет же этим американцам!». Это касается многого, от магазинов с доставкой «только в пределах 48 континентальных штатов» до вполне серьезных контрактов, которые срываются только потому, что потенциальный заказчик в США категорически не желает иметь дело с иностранцами.

    В этой статье я попробую осветить процесс создания и администрирования американской корпорации для резидента РФ. Наверняка многие из фактов для самих американцев покажутся тривиальными, однако для жителя России все куда сложнее — увы, это данность. Чтоб не сказать — это Родина, сынок. Оговорюсь сразу — я все это проделал более 2 лет назад, так что, некоторые детали могут быть не совсем актуальны. Но вряд ли что-то поменялось принципиально.
Читать дальше →

О некоторых приемах атаки Man in the middle

Reading time5 min
Views38K
Немного Википедии: атака «человек посередине» (англ. Man in the middle, MitM-атака) — термин в криптографии, обозначающий ситуацию, когда атакующий способен читать и видоизменять по своей воле сообщения, которыми обмениваются корреспонденты, причём ни один из последних не может догадаться о его присутствии в канале.
В этой статье будет рассмотрен прием пассивной атаки на http-соединение, без модификации проходящей информации. Итак, каким-то способом вы смогли вклиниться физически или удалённо в канал передачи данных, настроили bridge или просто получили root-управление шлюзом. Руткит поставили, базы с исходниками слили, вебшелл залили, в cron часовую бомбу заложили, и что теперь?
Читать дальше →

Javascript наследование для чайников

Reading time6 min
Views69K
Прочитав очередную умную книжку про javascript, стал разбираться в методах реализации в нём наследования. Ну, то есть всем конечно понятно, что в реальном, большом, проекте лучше всего для этого использовать функцию из какой-нибудь библиотеки( благо их много ), но ведь хочется понять, как это вообще работает.

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

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

Управление разработкой в стиле BDSM

Reading time5 min
Views9.7K
Управление разработкой — очень интересная штука, она вроде бы как есть, а, с другой стороны, ее как бы и нет. При этом на этой зыбкой грани между явью и фикцией многие люди довольно недурно зарабатывают, и ваш покорный слуга в том числе.

Честно говоря, написание этого текста преследовало вполне корыстные цели: он является некоторой лакмусовой бумажкой для отправки людям, с которыми предстоит сотрудничать.

И, расставив все точки над i, нужно либо кидаться с головой в бездну страстей, либо окончательно размежеваться. Итак, немного о том, почему бывают факапы и чем их нельзя исправить.
Часть первая: Bondage

О сетях: всего понемногу

Reading time7 min
Views41K
Недавно у нас были небольшие обучающие курсы для повышения нашей компетенции в сетевой части нашей инфраструктуры. Основную идею этих курсов, покрывающую OSPF/BGP/MPLS я тут повторять не буду ибо:
  • Пока ещё явно недостаточно компетентен.
  • Есть много более объективные ресурсы рассказывающие об этих темах.

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

Ссылки на вики зачастую более примечательны секциями «External links» и «References» нежели самим содержанием

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

Request spec in Action

Reading time7 min
Views5.9K
Тестирование стало неотъемлемой частью любой разработки программного продукта, будь то приложение под настольный компьютер, мобильное устройство или web. Уже никто не отрицает важность это этапа и последствий, которые принесет его отсутствие. Среди них большое время на проверку каждого элемента (страницы), и неожиданные сюрпризы в поведении продукта, увеличение затрат на исправление программы. Принцип написания тестов достаточно прост – «желтый цвет», «красный цвет», «зеленый цвет», рефакторинг. Где желтый цвет – это не созданный тест (pending), красный цвет – не прошедший тест, а зеленый – системе работает как надо.

Для каждого вида программирования, существует множество типов тестирования. Но есть и общие моменты, присутствующие везде. Так как основной род моей работы является создание web приложений под ROR, поговорим про особенности тестирования данных приложений.

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

Дозаправка в дороге — мобильная USB зарядка

Reading time2 min
Views70K
Почти все современные гаджеты могут заряжаться от USB порта компьютера или зарядки с таким портом.
Мода на компактные устройства привела к тому, что аккумуляторы в них не слишком емкие. Например мой HTC HD2 едва выдерживает рабочий день при активном использовании, а в режиме GPS навигатора и того меньше. В итоге приходится бегать от зарядки до зарядки или носить с собой запасные аккумуляторы к каждому устройству. Но комплект разных аккумуляторов обойдется недешево да и замена аккумулятора на прогулке — это минут 5: выключить, сменить аккумулятор, включить, запустить софтинку, дождаться пока снова найдет спутники. Неприятно.

Я покажу как сделать USB зарядку, которую можно взять с собой.
RMPS
«RMPS»
Она позволяет зарядить через стандартный USB порт все, что ест не больше 3А, а сама питается постоянным напряжением примерно от 7.2В до 22В. (авиамодельные, автомобильные аккумуляторы, все, что есть под рукой).
Себестоимость порядка 280-300 рублей. Времени на изготовление примерно 1 час. Размер — чуть больше батарейки АА.
Читать дальше →

Английский для айтишника? Легко!

Reading time2 min
Views183K
Эта тема не относится к IT напрямую, но все знают, что без нее никуда. К сожалению, далеко не у всех есть возможность изучать английский с преподавателями. Ну что ж, попробуем заняться этим дома и с максимальной отдачей!
Читать дальше →

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

Reading time15 min
Views54K
Сейчас в тематических интернетах модно слово «Node.js». В этой небольшой статье мы попробуем понять («на пальцах»), откуда всё это взялось, и чем такая архитектура отличается от привычной нам архитектуры с «синхронным» и «блокирующим» вводом/выводом в коде приложения (обычный сайт на PHP + MySQL), запущенного на сервере приложений, работающем по схеме «по потоку (или процессу) на запрос» (классический Apache Web Server).
Читать дальше →

Rails 3 и SproutCore

Reading time3 min
Views1.2K
Привет! Есть такой замечательный JavaScript фреймворк под названием SproutCore. С помощью него можно довольно легко писать веб-приложения с приближенным к десктопному интерфейсом. Штука довольно популярная, используется например Apple в iWork.com. Под катом мы прикрутим SproutCore к последним рельсам.
Читать дальше →

Пишем свой первый gem

Reading time2 min
Views9.6K
Хочу рассказать Вам свой опыт написания gem. Данная идея возникала у меня давно, но до реализации все никак не доходила. Все упиралась в банальную лень и отсутствие достаточной мотивации. Однако неделю назад мне достался проект, связанный с сервером рассылки писем.

Выбираем генератор

На первом этапе нужно было определиться с тем, как будет создаваться библиотека: с нуля или с помощью какого-то генератора. Для первого раза, на мой взгляд, писать с нуля будет достаточно сложно и долго, поэтому рассмотрим известные генераторы. Небольшой поиск показал такие gems: hoe, newgem, bundler. Лично мне понравились два – newgem и bundler. Первый представляет полный комплект шаблонов, охватывающий множество случаев. Но я выбрал bundler за его простоту, минимальный набор сгенерированных файлов и набор rake tasks для создания пакета и его дальнейшей публикации.

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

Немного о том как организовывать API веб-службы

Reading time3 min
Views20K
Возникла задача организовать веб-службу, к которой будут обращать обычные клиенты из браузера и другие веб-службы.

Предположим, я продаю билеты в театр клиентам. Клиентом может быть только агентство, которое имеет свою учётную запись у меня на сервисе. Агентства бывают маленькие, в котором сидит тетёчка и ручками в личном кабинете с помощью барузера осуществляет покупку билета, а также большие, у которых всё автоматизированно. Большие хотят иметь возможность подсоединиться ко мне с помощью API и осуществить покупку.

На билеты можно смотреть цены, предварительно бронировать, выкупать бронь, возвращать купленные и удалять бронь.

Вопрос: как лучше всего организовать API?
А вот так

Произносим правильно

Reading time2 min
Views153K
Из знакомых мне айтишников очень немногие стараются правильно произносить английские слова. Конечно, привычнее произносить C++ как «си-плюс-плюс», а не «си-плас-плас» или «опен-бэ-эс-дэ», а не «оупэн-би-эс-ди».
Но когда «echo $value;» читают как «ечо валуй» — это уже не смешно. Другой человек вас может просто не понять, особенно иностранец.

В топике представлен небольшой список «сложных» слов, которые часто произносят неправильно.
Ориентироваться лучше не на мою (весьма приблизительную) транскрипцию, а на аудио.

♫ — прослушать произношение в словаре
► — прослушать произношение на youtube

Начнем с названий:
ABBYY аби
Adobe эдоуби [əˈdəʋbɪ]
Apache эпэчи [əˈpætʃiː] от «a-patchy»
Asus офиц. э́сус
амер. э́йсус

 
BenQ бенкью
Cisco сискоу [ˈsɪskoʊ]
EBay ибэй
Eee PC и писи
Ethernet изэрнэт [ˈiθərˌnɛt]
Itanium айтэйниум [aɪˈteɪniəm]
Juniper джу́нэпэр [ˈdʒunəpər]
LaTeX лэйтех
лэйтек
латех
латек
[ˈleɪtɛk]
['leɪtɛx]
[ˈlɑːtɛx]
[ˈlɑːtɛk]
Linux офиц. линэкс
вар. линукс
[ˈlɪnəks]
[ˈlɪnʊks]

 
Mac OS X мэк оу-эс тэн
MySQL офиц. май-эс-кью-эл
вар. май-сиквел
как «My Ess Que Ell», см. оф. сайт
nginx энджин-икс (от engine-x)
PuTTY пати [ˈpʌtɪ] см. оф. сайт
Qt кьют [kyut] см.
TeX тех
тек
[ˈtɛx]
[tɛk]
не «текс»
XBox 360 экс-бокс фри сискти
Xen зен [ˈzɛn]
Xeon зион
Xerox зирокс [ˈzɪərɒks]
Xilinx зайлинкс [ˌzaɪliːŋks]
ZyXel рус. зайксел
амер. зайзел
см.


Аббревиатуры:
GNU гну вар. гню
GWT гвит [ˈɡwɪt]
ICANN айкэн
IEEE ай-трипл-и как «I triple E»
ISO айсо
PNG пинг [ˈpɪŋ] как «ping», см. спецификацию
PXE пикси [ˈpɪksi]
RUP рап
SCSI скази ['skʌzi]
SOAP соуп [soʊp]
SQL эс-кью-эл [ˈɛsˈkjuˈɛl] неофиц. «сикуел»
SWF свиф [ˈswɪf] см. спецификацию
WYSIWYG визивиг [ˈwɪziˌwɪg]
XAML зэмл [ˈzæməl]
XUL зул [ˈzuːl]
Yii длинное «и» [ji:]

Обычно аббревиатуры произносятся по правилам английского языка: API — эй-пи-ай, PCMCIA — пи-си-эм-си-ай-эй, OpenBSD — оупен-би-эс-ди и т.д.

Обычные слова дальше

Events bubbling и events capturing

Reading time5 min
Views65K
intro
Представьте, что на странице есть два блока, и один вложен в другой, как это показано на рисунке. В разметке страницы это выглядит так:
   <div id="block_outer">
      <div id="block_inner"></div>
   </div>

А теперь представьте, что к блоку #block_outer привязано событие onClickOuter, а к блоку #block_inner, соответственно, событие onClickInner. И ответьте на вопрос, как сделать так, чтобы при клике на блок #block_inner, событие onClickOuter не вызывалось? И будет ли оно вообще вызвано? И если будет, то в каком порядке события будут вызываться? И знаете ли вы, как работает метод jQuery.live или подобные в других библиотеках (events delegation в ExtJS, например)?
Если я хоть немного заинтересовал, добро пожаловать под кат.

Жизнь за рубежом

Reading time5 min
Views3.8K


Все началось с того, что я начал думать о том, куда бы мне переехать жить. Хотелось переехать куда-то недалеко, в тёплый климат, в одну из европейских стран, куда можно переехать не быв при этом миллионером. Начал изучать, читать… и тут понял, что мне не хватает сайта, на котором можно было бы найти информацию о любой стране, пообщаться с людьми, которые уже там живут и теми, кто планирует переезжать. Конечно же есть по каждой стране не один форум и блог — но такого сайта, который бы объединял всех русскоязычных
эмигрантов — такого я не нашел. А то, что находил — совершенно не удовлетворяло мои потребности.

Именно поэтому я и решил, что нужно сделать такой сайт. Об этом сайте и пойдет дальше речь.

Краткий план статьи. Вам стоит читать эту статью, если Вы хотите узнать:


1. О проекте
2. Пару слов о "дизайне" и немного о технической начинке.
3. О том где и как рекламирую и какие ресурсы оказались самыми эффективными.
4. Про монетизацию
5. Рассказ про то, куда переезжаю я и почему именно туда
6. Ищем модераторов.
Читать дальше →

Руби конференция в Киеве

Reading time2 min
Views586

Не упустите шанс встретиться с настоящими Ruby Heroes и узнать над чем сейчас работают эксперты Ruby core team!

5-6 ноября 2011 года в Киеве состоится конференция RubyC.

RubyC — это двух-дневное мероприятие по технологии Руби и сопутствующим технологиям веб-разработки. Мероприятие соберет лучших рубистов не только из Украины, но из СНГ и Европы. В этом году на RubyC можно будет увидеть и услышать таких гуру технологии Руби как Стив Клабник, Райан Бигг и Пат Аллан. Вы узнаете о последних новостях развития одного из наиболее эффективных веб-фреймворков и получите возможность пообщаться с ведущими веб-разработчиками. Вы также получите ответ на вопрос «Как я могу стать успешным Ruby on Rails разработчиком?» и узнаете, почему программиста можно сравнить с писателем художественной прозы.
Читать дальше →

Information

Rating
Does not participate
Location
Артек, Украина, Украина
Date of birth
Registered
Activity