Pull to refresh
5
0
Антон Чапоргин @wpm1

User

Send message

Согласованные в конечном счете (Eventually Consistent)

Reading time12 min
Views45K
В последнее время на хабре чаще стали встречаться обсуждения масштабируемых систем и NoSQL решений. Эта статья, написанная техническим директором Amazon — одна из лучших вводных, на мой взгляд, показывающая, какие проблемы возникают при построении масштабируемых систем, что нужно учесть при выборе инструментария, что имеют ввиду авторы кассандры, говоря про обеспечение AP в кассандре и CP в HBase и многое другое.
Читать дальше →

pv — маленькая, но очень полезная утилита

Reading time2 min
Views86K
Один мой друг сказал по поводу pv следующее «Я админю семь лет, мне нужна была эта тулза десятки раз, а я даже не знал что она существует». В размышлениях над тем как заполучить инвайт на Харбе, я набрал в поиске pv. И ничего не нашел.
Читать дальше →

progress bar для консольных утилит

Reading time1 min
Views34K
По долгу службы мне время от времени приходится копировать, архивировать, разархивировать и проводить другие стандартные действия с большими файлами. Консольные утилиты, типа cp, tar или cat — отлично справляются с поставленной перед ними задачей, но возникает одна маленькая проблема: предположим, что надо заархивировать SQL-дамп на 500 Мб, на среднем железе данная операция может выполняться 5 — 10 минут и при этом, стандартный tar не выводит никакой строки прогресса, т.е. консоль как бы подвисает и только открыв top в соседнем окне можно понять что что-то происходит. Я думаю, что будет намного удобнее, если в консоли появится полоска прогресса как в том же scp и тогда пользователь будет лучше осведомлен о том, как долго ему осталось ждать до завершения операции.
Как же этого добиться?

Underscore.js — библиотека, которая так хороша, что должна быть вне закона

Reading time3 min
Views50K
Каждый, кому приходилось писать объемные куски осмысленного кода на javascript, рано или поздно понимал, что ему многого не хватает в этом языке или просто неудобны некоторые врожденные конструкции. Для сглаживания шероховатостей применяются jQuery, Prototype, MooTools etc. Кто-то уже мало представляет себе, как можно кодить без них. Сегодня я расскажу о еще одной маааленькой библиотечке, которая делает мир javascript-программиста еще прекраснее. Речь пойдет о Underscore.js
Go ahead, make my day

Выключаем монитор с клавиатуры

Reading time3 min
Views26K
Предыдущий топик про ddccontrol, открыл для меня, что по DDC можно мониторы выключать. Не вгонять в сон, не включать энергосберегающий режим, а реально выключать. Так, чтобы гасла (и совсем не мигала!) лампочка питания на морде. Как от нажатия выкл на той же самой морде. Разумеется, можно не только выключать, но и включать. Программно!

1) Это можно сделать программно (ddccontrol)
2) Это можно прописать в скрипт
3) Скрипт можно повесить на хоткей

5) PROFIT??

В список профитов можно записать возможность включения/выключения ОДНОЙ кнопкой на клавиатуре ВСЕХ мониторов (у меня их сейчас два, и я планирую больше в будущем). Кнопка на клавиатуре куда приятнее для нажатия, чем кнопка монитора (по которой её целиться надо, да и монитор от нажатия может слегка поворачиваться, что раздражает).

Читать дальше: скрипты и руководство по настройке

Фундамент знаний и кирпичи навыков

Reading time4 min
Views5.4K
       Третий, и я думаю, последний пост из цикла «о карьере ИТ-специалиста». Предыдущие: 1, 2.

В предыдущих обсуждениях возникло некоторое недопонимание смысла синдрома «многорукого Шивы» и смысла «изучать вглубь». Примеры, которые я буду приводить, будут касаться системного администрирования, но, думаю, в остальных ИТ-областях ситуация аналогичная (будь то программирование, вёрстка, написание баз данных, или возня с железом).

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

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

Представим себе знания, как фундамент.

Можете ли вы раскидать кирпичи по пляжу? Можете.



Именно так выглядят знания начинающего эникейщика или просто компьютерного пользователя. Местами кирпичи даже накладываются друг на друга и образуется кучка в 2-3 кирпича высотой. Это опытный пользователь, который хорошо знает, как устанавливать драйвера, как чистить реестр и оптимизировать производительность.
Читать дальше →

Оптимистичные примитивы синхронизации, очереди и все-все-все. Трагикомедия в трёх действиях

Reading time4 min
Views8.9K
Заранее предупреждаю, для тех кто в теме, интересного будет не очень много. :)

У меня появилась актуальная задача реализовать базовые примитивы синхронизации(мьютекс, семафор и read/write lock), используя только синхронную очередь — единственный доступный примитив. Заодно по пути я расскажу как устроены спинлоки и мы даже соберём маленького франкенштейна.

Часть 1: Всё — очереди

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

Отечественный флэш плеер

Reading time2 min
Views940
imageУже давно использовал плеер производства http://flv-mp3.com/, который отличался простотой и элегантностью, но давеча получил письмо с новостью о выходе новой версии их замечательного плеера. Мое описание возможно покажется слишком эмоциональным, но это только потому, что плеер — Это бомба!

Прежде всего, демо-сайт — http://uppod.info/. После часа разборок с настройками, я могу заверить, что все фишки демосайта реализуются плеером на ура.


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

Иерархические структуры данных и Doctrine

Reading time15 min
Views83K

Введение



Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.

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

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.
Читать дальше →

Удобное решение для работы с БД

Reading time2 min
Views6.4K
logo_by_chernev
Обычно для работы с mySQL я использовал «phpmyadmin», но сегодня мой взор был направлен на новое решение «SQL buddy», я скачал, загрузил на свой сервер, и…
И это просто супер! Такой и должна быть удобная работа с БД!

Возможно «SQL buddy» не имеет столько расширенных функций как «phpmyadmin», но для рутинных и небольших работ она прекрасно подходит.
Читать дальше

Хитрости создания стартапа: что нужно помнить на ранней стадии

Reading time3 min
Views683
Статья Michael Cerda о том, чего не стоит забывать на этапе создания стартапа.

Уровень подготовки читателя:
низкий — средний.

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

Продукт: ваш продукт должен быть обезболивающим, а не витаминами.

Убедитесь, что он решает проблемы или удовлетворяет потребности. Он не должен быть чем-то, необходимость чего вам каждый раз приходится объяснять, ссылаясь на какие-нибудь основные тренды рынка. Продукт должен быть очевиден и должен описываться одним предложением. Если у вас не так — вы проиграли еще не начав.
Читать дальше →

Абстракция БД

Reading time4 min
Views5K
Когда я только начинал писать на PHP, ООП я владел, пожалуй, на уровне синтаксиса, не более. В то время мне вполне хватало функций mysql_*. Со временем, опыта становилось больше, я начинал задумываться об оптимизации. Этот топик описывает эволюцию моего кода.
Читать дальше →

nginx, memcached и SSI

Reading time3 min
Views19K
Моя первая статья, не судите строго...

Приветствую вас, уважаемые хабрадевелоперы!

Многие из вас знают о прекрасном легковесном веб-сервере nginx.
Некоторые также знают, что он умеет работать с memcached.
Но лишь немногие в курсе, при чём здесь SSI и как его можно использовать в связке с nginx и memcached.

Как известно, новое — это хорошо забытое старое. Каждый названный инструмент и технология вам наверняка известны. Я же хочу рассказать о том, как и зачем свалить всё это в одну кучу :)
Читать дальше →

Стилизация файл-инпутов

Reading time5 min
Views39K
Результат стилизации файл-инпута
Привет. Сегодня я хочу вам рассказать о том, как можно изменить внешний вид файлового инпута.

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

ТЗ для web-разработчика

Reading time4 min
Views21K

Написание хорошего ТЗ для разработки сайта еще та проблема, и я поделюсь своим опытом по созданию «человеко-понятного» описания для заказчика для разработчика.
Читать дальше →

Супер-простой плагин, правильно склоняющий слово «комментарий».

Reading time2 min
Views2.1K
Когда-то давно я читал какую-то статью про развитие цивилизаций. Там была любопытная деталь, касающаяся счета. Автор статьи утверждал, что первобытный человек считал так: один, два, и так до какого-то предела счетного множества, много. То есть, он мог считать до какого-то ограниченного предела, а все, что больше этого счетного множества не помещалось в его мозги и называлось попросту «много». И он приводил аргументы за то, что в русском языке (как и в некоторых других) до сих пор есть следы этого деления, к примеру:

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


То есть, счетное множество у древних славян заканчивалось в районе четырех.

Собственно, это была лирика.
Читать дальше →

Установка SVN+Trac+TracWebAdmin

Reading time3 min
Views18K
Привет всем!
Сегодня я расскажу как правильно и без гемора установить связку SVN + Trac + TracWebAdmin.

Для чего все это...?

Представьте себе ситуацию: у вас есть проект, который находится на стадии разработки. Скрипты содержат тысячи строк кода. Постоянное сохранение, бэкап файлов, удаление фрагментов кода, вставка новых вынуждают вести точный контроль над исходным кодом проекта, чтобы не потерять уже существующее и проверенное. Вам приходится записывать в текстовом файле или на бумаге этапы разработки и тестирования отдельных частей системы, возможно даже записывать версии файлов. Возможно это удобно… но не надолго — насутпают моменты, когда контролировать код вручную становится физически невозможным из-за его размера. Здесь на помощь приходит система контроля за версиями SVN. Начать ознакомление можно осюда: ru.wikipedia.org/wiki/SVN. А Trac — это всего лишь удобный веб-интерфейс для еще более удобного контроля за своим проектом. Рассмотрение Trac'а можно начать отсюда: ru.wikipedia.org/wiki/Trac
Читать дальше →

Организация общения с посетителями сайта: варианты.

Reading time2 min
Views3.4K
ОператорыДовольно интересная тема, особенно важная для интернет-магазинов, сайтов турагенств и прочих оператор-ориентированных сервисов. Стандартный подход в рунете такой: в шапке сайта указывается телефон, в подвале — е-мейл, в лучшем случае есть ICQ или форма обратной связи. Skype мне пока не встречался.

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

На западе решением этой проблемы было озадачено несколько компаний, разработавших всё, что можно найти в Google по запросу “Live Chat Software“, то есть программы для мгновенной связи оператора с посетителем сайта. По некоторым данным, такой механизм в хорошей реализации может увеличить конверсию и, соответственно, продажи более чем на 80% (!). Это вполне логично — задать вопрос специалисту проще, чем лазать по каталогу и легче, чем звонить, искать кого-то в ICQ или ждать ответа по e-mail.

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

Неотложный пункт добрых дел

Reading time1 min
Views1.1K
В связи с недостатком времени для написания топиков в течение ближайшей недели или даже двух, открывается экспериментальный типографический «Неотложный пункт добрых дел». Предлагаемая схема НПДД очень проста, и напоминает лёбёдёвский «Линч». Только у Лебедева линч недобрый, а в НПДД все очень добрые.

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

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

Пожалуйста, кидайте ссылки именно на ваши сайты, если вам интересна помощь НПДД (а не на всё подряд) — Колобок не резиновый. Волонтёрство в роли Колобка также приветствуется!

Information

Rating
Does not participate
Location
Иркутск, Иркутская обл., Россия
Date of birth
Registered
Activity