Search
Write a publication
Pull to refresh
27
0
Андрей Журавлёв @Gen1us2k

Разработчик

Send message

Git Rebase: руководство по использованию

Reading time8 min
Views856K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


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

История тернарного оператора

Reading time2 min
Views12K
Да, во он ? :, давайте разберемся почему он именно такой, а не другой. Единственное питонщикам не будет столь интересно это читать ибо у нас них он выглядит так:

print True if 1 > 2 else False

Четко и понятно «в лоб», с появлением его в python читал в блогах много рассуждений почему он такой, где же стандартный ? : подобный.

Давайте разберемся…
Читать дальше →

Установка SphinxSE на Percona Server

Reading time3 min
Views7.2K
Ни Sphinx, ни Percona Server в особом представлении не нуждаются. SphinxSE — не основной, но в некотором роде более удобный интерфейс доступа к Sphinx searchd, оформленный в виде storage engine плагина MySQL.

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

Что не так с Windows 8

Reading time6 min
Views379K
Так уж сложилось, что я — лояльный пользователь Windows, и «восьмёрку» поставил почти сразу, как вышел финальный релиз. То, что ось вышла, мягко говоря, неоднозначной, вы и без меня знаете — достаточно просто почитать новости и отзывы в интернете. Так как отзывы достаточно фрагментированные, составить цельную картинку по ним сложно, поэтому я написал свой разбор винов и фейлов Windows 8.



Начну я с недостатков, потому что так проще — все проблемы новой Windows имеют в корне одно слово: Metro. Намерения дизайнеров Microsoft читаются ясно: скрестить коня и трепетную лань мобильный metro-интерфейс относительно небольшим экраном и крупными, ориентированными на пальцы, плитками-иконками с традиционным интерфейсом десктопных Windows.
Читать дальше →

Как работают экспертные системы прогнозирования продаж или сколько грузить планшетов в граммах

Reading time8 min
Views52K


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

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

Соответственно, задач у вас сейчас три:
  • Поддерживать ассортимент продукции по основной линейке;
  • Понимать, сколько будет продаж, чтобы планировать закупку аксессуаров;
  • Держать на контроле все хиты и новинки, чтобы всегда продавать ходовые товары и «снимать пену» на запусках новых девайсов.

Через полгода становится веселее

Конверсия сайта. Превращаем посетителей в покупателей

Reading time6 min
Views13K
Сегодня мы хотим представить вам нашу очередную новинку, которая на этот раз относится к области интернет-маркетинга и веб-аналитики и посвящена такой актуальной теме как конверсия и повышение эффективности отдачи от веб-сайта.

  • Название: Конверсия сайта. Превращаем посетителей в покупателей (англ.: Convert!: Designing Web Sites to Increase Traffic and Conversion)
  • Автор: Бен Хант
  • Дата выхода: июнь 2012 года

image

Аннотация книги

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

Ликбез по типизации в языках программирования

Reading time12 min
Views533K
image

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

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

Интервью с CYBERMANIAC

Reading time38 min
Views30K
Если вы знаете, и помните человека под ником CYBERMANIAC, для вас этот разговор будет похож на внезапное обнаружение половины студенческой зарплаты во внутреннем кармане старой куртки. Для тех кто никогда не слышал о Станиславе, я думаю будет тоже интересно почитать о небольшой, но уникальной искре времени начал интернета в далеком от столиц городов России глазами CYBERMANIAC'а. Он мне показался неизменным с 00 годов да и настолько изолированным, что очень уж захотел написать о нем.

Мы осторожно поговорим о жизни программиста в глубинке, о языках программирования с момента появления их в России: Forth, Borland Pascal, Delphi ,C#, MegaBasic, Java, SQL, C++. о япоском языке, о змеях, о национальных напитках, о Сократе, о советских объективах, о звездах, человеческих страхах.

CYBERMANIAC носит в себе большой опыт в крекинге, написании утилит, автор Neo Sign 0f Misery, древней электронной книги “Теоретические основы крекинга”, а так же автор многим любимого windows scanner и большого фотолюбителя-звездочета. Интервью получилось многим больше, чем я рассчитывал. Но надеюсь, для вас будут звучать колокольчиками похожие мысли. Именно их мы и слушаем, когда читаем…
Читать дальше →

Самокритика: от эникея к специалисту. Мысли вслух

Reading time4 min
Views38K

Доброго времени суток, %username%!
Я мог бы начать эту статью издалека, кидаясь всяческого вида призывами и тезисами, но я не хочу никого утомлять… просто сначала спрошу, казалось бы, очевидные вещи:
  • Приходилось ли тебе думать, что ты занимаешься не тем, чем всегда хотел?
  • Посещают ли тебя мысли о том, что в то время, как ты эникействуешь или, простите, быдлокодишь, другие занимаются действительно интересными вещами?
  • Хочешь ли вырасти в своих глазах на поприще ИТ?

Если все это тебе знакомо, то прошу под хабракат.
Читать дальше →

Модели TCP

Reading time2 min
Views34K
Совсем недавно несколько раз за короткий промежуток времени в разговорах с коллегами натыкался на принципиальное непонимание того простого факта, что тюнинг параметров TCP — это не все, что можно сделать для оптимальной утилизации каналов. Что-что? Какие-такие другие модели TCP? Нафига? Все и так можно подогнать, поигравшись Maximum Window Size, таймингами и прочим. Это конечно все здорово и бывает крайне необходимо, но не все поддается тюнингу через proc или реестр. А именно и например? Сравнить это можно с ситуацией, как если бы мы имели некую формулу и добивались результатов «кручением» в ней неких переменных и коэффициентов. Но можно ли поменять саму формулу?

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

Как работает ZFS — часть 1: vdev

Reading time3 min
Views33K
Vdev, или Virtual Device — это базовая единица, на которой строится массив данных ZFS (zpool). Для работы ZFS необходим как минимум один vdev — виртуальное устройство, которое позволяет случайный доступ к информации на уровне блоков.

Обычно, в качестве таких блоков используются целые диски или iScsi/FC LUNы (raw-disk vdev), но можно также использовать разделы дисков или файлы. Целые диски предпочтительнее, так как для них ZFS использует onboard write cache, в результате чего производительность записи может значительно улучшиться. Я пока не буду объяснять разницу между logical vdev и leaf vdev — это топик для отдельной статьи про то как работает RaidzN и zfs mirror.
src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs/vdev_disk.c#314
if (vd->vdev_wholedisk == 1) 
{
	int wce = 1;
	/*
	 * If we own the whole disk, try to enable disk write caching.
	 * We ignore errors because it's OK if we can't do it.
	 */
	(void) ldi_ioctl(dvd->vd_lh, DKIOCSETWCE, (intptr_t)&wce, FKIOCTL, kcred, NULL);
}

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

Каждый vdev разделен на логические разделы (metaslab),
Читать дальше →

Как работает ZFS — часть 2: metaslab

Reading time6 min
Views11K
В первой части я описал как организованы данные на vdev в ZFS. Вторая часть описывает как работает алгоритм выбора собственно места, куда запись будет идти в данный момент.

Здесь я немного усложню задачу — в первой части был описан только один vdev; здесь их у нас будет несколько, поскольку алгоритм должен выбрать и vdev, куда мы будем писать блок данных, и metaslab внутри vdev'a. В продакшн системе может быть несколько десятков vdev, и правильно распределить данные по ним критично — перебалансировать их мы уже не сможем без копирования всех данных. Цель правильного алгоритма — распараллелить данные так, чтобы на каждом девайсе их было примерно одинаковое количество, выровнять неравномерное заполнение, но и не перегрузить один из девайсов (это будет тормозить запись на весь пул).

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          c1t6d0    ONLINE       0     0     0
          c1t5d0    ONLINE       0     0     0


Для начала, важное замечание: ZFS рассчитан на то, что все девайсы в пуле имеют одинаковый размер. Иначе, например если добавить 2Тб диск в пул из 1Тб дисков, на 2Тб диске в результате окажется в два раза больше данных, и он начнёт влиять на суммарный IOPs системы — алгоритм аллокатора учитывает процент заполнения, а не количество данных в байтах.

На данный момент в ZFS есть четыре алгоритма аллокатора. Переменная zfs_metaslab_ops содержит поинтер на структуру space_map_ops_t, в которой есть поинтеры на семь функций, которые использует каждый конкретный алгоритм. Например, в Illumos используется алгоритм metaslab_df, и соответствующий стракт с поинтерами на функции выглядит вот так:
Читать дальше →

Как буддистские монахи перепрошивают себе мозги

Reading time2 min
Views61K
В буддизме есть понятие просветления.

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




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

Это как в компьютерной игре набрать чит-код и прокачать своего персонажа.
И, похоже, у буддистов есть проверенный способ.

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

Как начать писать игры

Reading time9 min
Views349K
Оригинал: Starting out on Game Programming

Путь в индустрию игровых разработок не близок. Эта статья призвана помочь понять с чего лучше начать это путешествие.

Вы только что закончили ваш первый курс по С++ и хотите начать делать игры. Кто-то указал вам на этот сайт и вы, возможно, поэкспериментировали немного с руководством. Вы изучили несколько лаконичных примеров, но не нашли руководства о том, как сделать целую игру. И на то есть причина.

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

Сайт для программиста. Часть 2. Публикация

Reading time4 min
Views39K

В первой части я рассказал, как программисту относительно просто запустить с нуля свой личный сайт с использованием Github, Heroku и Twitter Bootstrap.

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

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

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

SMS сообщениям исполняется 20 лет

Reading time2 min
Views16K

В постоянно меняющемся мире технологий, есть только несколько вещей, которые оказались настолько устойчивыми к изменениям, как SMS сообщения.

Несмотря на внушительное количество различных способов для коммуникации людей, текстовые сообщения по сей день остаются 160-символьным способом доставки новостей, сплетен, смайликов, уведомлений и многой другой информации. Они объединяют больше людей, чем Facebook или Twitter. Из-за них даже уходили в отставку правительства!
Читать дальше →

Morris worm — он был первым

Reading time6 min
Views30K
2 ноября 1988 года сеть ARPANET была атакована программой, впоследствии получившей название «червь Морриса» — по имени его создателя, студента Корнельского университета Роберта Морриса-младшего. Сеть ARPANET (Advanced Research Projects Agency Network) была создана в 1969 году по инициативе Управления перспективных исследований Министерства Обороны США (DARPA, Defense Advanced Research Projects Agency) и явившаяся прототипом сети Интернет. Эта сеть создавалась в интересах исследователей в области вычислительной техники и технологии для обмена сообщениями, а также программами и массивами данных между крупнейшими исследовательскими центрами, лабораториями, университетами, государственными организациями и частными фирмами, выполняющими работы в интересах Министерства Обороны США (DoD, Department of Defence of USA). Именно по заказу DoD был разработан один из трех наиболее распространенных протоколов транспортного уровня модели OSI, получивший название TCP/IP, который в 1983 году стал основным в ARPANET. К концу 80-х годов сеть насчитывала несколько десятков тысяч ЭВМ. ARPANET прекратила своё существование в июне 1990 года.
«Червь Морриса» был первым в истории развития вычислительной техники образцом вредоносного программного обеспечения, который использовал механизмы автоматического распространения по сети. Для этого использовалось несколько уязвимостей сетевых сервисов, а так же некоторые слабые места компьютерных систем, обусловленные недостаточным вниманием к вопросам безопасности в то время.
Читать дальше →

Новый руткит для 64-разрядной системы Linux: внедрение iframe

Reading time3 min
Views18K
Несколько дней назад в списке рассылки Full Disclosure появилось сообщение об интересной вредоносной программе для Linux. Это очень любопытный образец – не только потому, что он предназначен для 64-разрядных платформ Linux и скрывает свое присутствие в системе с помощью хитроумных методов, но прежде всего из-за необычного функционала, связанного с заражением сайтов, размещенных на подвергшемся атаке HTTP-сервере. Таким образом, мы имеем дело с вредоносной программой, используемой для организации drive-by загрузок вредоносного ПО.
image
Читать дальше →

Онлайн-инструменты для кодеров

Reading time2 min
Views286K
Онлайн-сервисы становятся все популярнее, постепенно усложняя функционал и улучшая интерфейсы. В этой подборке представлены онлайн-инструменты для кодеров.

Cloud9


«Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.

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

Домашний интернет: маршрутизация двух (и боле) провайдеров на основе Bird Routing Daemon

Reading time7 min
Views47K
Наверное, многие пользователи домашнего интернета сталкивались с тем, как распараллелить два и более интернет-канала в домашней сети.
Эта проблему можно решить и хардварно (используя любое дешевое либо дорогое оборудование) и софтверно.
Какую же модель маршрутизации выбрать? Сразу можно отбросить RIP/OSPF/BGP, так как это домашний интернет и больше чем уверен (в моем случае и проверено), что вам не захотят делать поддержку на стороне провайдера бесплатно.
Остановил выбор на bird.

Итак, исходная позиция:
  • Домашний раутер с Debian GNU/Linux 6.0.5 (squeeze) на борту
  • 2 интернет канала (ISP1 и ISP2)
  • 2 прямые руки
  • чашка кофе

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

Information

Rating
Does not participate
Registered
Activity