Pull to refresh
26
0
Александр @rolltin

User

Send message

Первый опыт работы с Handler Socket & php_handlersocket

Reading time4 min
Views10K
handlersocket

Немного вскружилла голову статья Использование MySQL как NoSQL — История о том, как достичь 750,000 запросов в секунду (Перевод моего друга Вадима). Есть и другие материалы по этой теме. И вот дошли руки до экспериментов.

Под PHP разработано три разных клиента:
extension code.google.com/p/php-handlersocket
PEAR openpear.org/package/Net_HandlerSocket
PHP native github.com/tz-lom/HSPHP

Ниже приведены мои впечатления о первых экспериментах.
Читать дальше →

Интерпретатор Brainfuck на Bash

Reading time1 min
Views2.2K
В последнее время популярность эзотерического языка Brainfuck набирает обороты. Количество приложений, написанных на Brainfuck увеличивается не в арифметической, а даже в геометрической прогрессии. Очень похожая ситуация с Android.

Сегодня я решил запустить свой первый хелловорлд на этом языке. Я счастливый пользователь NetBSD на тостере, и у меня не получилось настроить интернет. Поэтому, я не смог воспользоваться уже готовыми решениями для запуска программ на Brainfuck'e.

Выход оставался один — написать интерпретатор самому. Из софта были только Bash и системные утилиты.

$ cat bf.sh
#!/bin/bash
C="s[0]=0; p=0;"
while read -n1 c; do case $c in
	\+) C="$C s[\$p]=\$((\${s[\$p]}+1));";;
	\-) C="$C s[\$p]=\$((\${s[\$p]}-1));";;
	\>) C="$C p=\$((\$p+1));";;
	\<) C="$C p=\$((\$p-1));";;
	\.) C="$C printf \\\\\$(printf '%03o' \${s[\$p]});";;
	\,) C="$C read -n1 c; s[\$p]=\`printf '%d' \"'\$c\"\`;";;
	\[) C="$C while [[ \${s[\$p]} > 0 ]]; do ";;
	\]) C="$C done;";;
esac; done < $1; 
eval $C

$ cat hello.b
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
------.--------.>+.>.

$ ./bf.sh hello.b
Hello World!

Регулярная ловушка

Reading time2 min
Views3.4K
Допустим, мы хотим проверить регулярным выражением, что в строке есть хотя бы одна цифра. Пишем код:

<script>

var digits = /([0-9])+/g;

function has_digit(s) { return digits.test(s); }

</script>


Этот код неверен.
Вам очевидно — почему? Если нет — добро пожаловать под кат!

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

Как устроен AES

Reading time7 min
Views318K

О чём эта статья



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

В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

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

Знакомство с OCR библиотекой tessnet2 (язык C#)

Reading time5 min
Views61K
example
Буквально на днях у меня появилась необходимость распознать простой текст на картинке и совсем не было желания реализовывать свой алгоритм, т.к. знаком с теорией и знаю, что это не такое простое дело, поэтому сразу решил изучить сначала рынок готовых библиотек. Буквально несколько запросов в гугл и я понял, что ничего более подходящего мне как библиотека tessnet2 невозможно найти. Постоянно читаю хабр и знаю, что тут есть уйма статей посвященных теории OCR и очень удивился, что нет ничего о библиотеке tessnet2.
Читать дальше →

Оптимизация для Intel Atom на пальцах

Reading time3 min
Views33K

Начну, пожалуй, с очевидного (слева от этого текста). Изображение, приведенное здесь, довольно известно. Оно показывает, что сотрудники Интел обычно носят на пальцах вместо колец процессоры Atom и рисовые зерна.
Оно демонстрирует размер процессора Intel Atom в сравнении с рисовым зерном. А я продемонстрирую вам буквально «на пальцах» простые и, надеюсь, полезные для программистов на С\С++ советы по оптимизации софта для Intel Atom.
Читать дальше →

Мое дело — Онлайн-бухгалтерия для индивидуальных предпринимателей

Reading time2 min
Views3.9K


Привет!

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

Нашей целью было сделать бухгалтерию доступной для любого человека — поэтому мы сконцентрировались на небольшом сегменте рынка — индивидуальные предприниматели на 6%-ной упрощенке, работающие без кассы. Это позволило сделать сервис очень простым и понятным — без бухгалтерского лексикона, ссылок на нормативные акты и перегрузки ненужной информацией вроде расчета НДС, ЕНВД итд. И, я думаю, у нас это неплохо получилось.

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

Домашняя Cisco VoIP лаборатория на базе эмулятора GNS3

Reading time5 min
Views49K
image

Как и во многих других областях связи, всеми нами любимая компания Cisco стремится закрепить свои лидирующие позиции на рынке VoIP. Именно под эгидой этой технологии прошла последняя выставка Cisco Expo. Cisco всячески поощряет и развивает это направление, а с учетом того, что VoIP специалисты на сегодняшний день – одни из самых дорогих сетевых инженеров, все больше и больше сетевиков обращают свои взоры на эту сферу.

В линейке сертификатов Cisco есть отдельная «концентрация» для VoIP специалистов, состоящая из трех сертификатов: CCNA Voice, CCNP Voice и CCIE Voice. Cisco выпускала и продолжает выпускать огромное количество учебных материалов для подготовки к этим сертификациям, но тут появляется камень преткновения для заинтересованных: где попрактиковаться?
Читать дальше →

Подготовка пакета документов для переноса доменов в зоне .RU и .SU

Reading time3 min
Views3.4K
Кто хоть раз сталкивался с необходимостью переместить домен в зоне .RU или передать его другому лицу, знает, что в этой сфере услуг царит полнейший бардак. Мне, например, понадобился месяц кропотливого изучения десятка различных наборов документов, чтобы вывести определённую систему. Сталкиваясь, вернее, спотыкаясь об эту проблему каждый день, мы решили хоть как-то систематизировать накопленный опыт и превратить его в полезный сервис.

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

Войны в песочнице — Часть 2. Обход HTTPS

Reading time10 min
Views48K
Ранее была получена возможность перехватывать весь трафик исследуемого субъекта. Однако банальный анализ логов tcpdump не даёт значимого результата, так как большинство сервисов использует шифрование с помощью SSL для передачи важных данных, в том числе паролей.
Как обойти шифрование SSL

VU метр с нуля

Reading time5 min
Views68K


Введение


Помню, как лет в десять впервые взялся за паяльник и к годам так к четырнадцати уже собрал радиуправляемую машину, но с появлением компьютера как то-забросил это благородное занятие. И вот, буквально две недели назад, меня посетила идея сделать что нибудь красивое. Подумал и решил сделать VU — meter. Начал перекапывать форумы по электронике, в поисках наилучшей, на мой взгляд, реализации данного девайса. Спустя день поисков я наткнулся статью в журнале “РадиоХобби”, поискав еще немного я нашел рисунок печатной платы. Так что, что ни логика ни печатная плата мне не принадлежит, предложил данную схему, как написано в журнале — Марцин Вьязаня.

Тут начинается самое интересное…
Осторожно трафик
Читать дальше →

N+1 полезных книг о бизнесе

Reading time9 min
Views231K
В топике блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто собирается открыть своё дело. Рядом с каждой — короткие пояснения, почему и зачем стоит прочесть.

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

В конце — суммация книг, которые хабровчане рекомендуют в комментариях помимо основного списка.

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

Готовим рыбу Фугу дома или OpenBSD на домашнем сервере

Reading time10 min
Views19K

Конечно же речь пойдет не о приготовлении всем известного японского деликатеса. А пойдет она о настройке нескольких сервисов, которые я определил для
себя как необходимые, на домашнем сервере. В качестве операционной системы которого будет выступать OpenBSD.
Многие воскликнут, а зачем тебе эта малоизвестная ОС, ведь есть же Linux, FreeBSD. Да, действительно, я мог бы настроить все необходимое и на других
unix like, но это бы не принесло мне столько удовольствия, сколько я испытал изучая и настраивая OpenBSD. Да и потом, меня всегда привлекают сложные
и нестандартные решения.
Закончим с вступлением и вернемся к теме заголовка.
Спешу представить тебе меню, уважаемый читатель.
Меню под катом

Настройка и оптимизация MySQL сервера

Reading time9 min
Views317K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →

IPoE, а также Client-VLAN и DHCP Option 82

Reading time5 min
Views86K
В этой статье я опишу что из себя представляет технология доступа в Интернет IPoE, которой на самом деле не существует. А также расскажу про схему Client-VLAN и про опцию 82 DHCP (DHCP Option 82), которые стали неотъемлемой частью этой несуществующей технологии. Все это, конечно же, с технической точки зрения и с примерами конфигов.
Читать дальше →

Prelink и Preload для ускорения запуска программ в Linux

Reading time3 min
Views36K
В этой заметке я опишу две утилиты, которые помогут ускорить работу системы Linux, а конкретно — запуск приложений: prelink и preload. Prelink оптимизирует исполняемые файлы для быстрого связывания с библиотеками. Preload кэширует часто используемые библиотеки и программы.
Подробности под катом.
Читать дальше →

Большие потоки трафика и управление прерываниями в Windows

Reading time3 min
Views23K
Мне очень понравился топик про распределение нагрузки от прерываний сетевого адаптера по процессорам, поэтому я решил описать как это делается в Windows.

Disclaimer: судя по некоторым комментариям в предыдущих постах, мне стоит повторить то, с чего я начал первый пост: я не даю (и не могу давать) общеприменимых рецептов. Особенно это касается производительности, где мельчайшая неучтенная деталь может катастрофически повлиять на результат. Вернее рекомендацию то я даю: ТЕСТИРОВАНИЕ И АНАЛИЗ. Смысл моей писанины в том, чтобы дать людям как можно больше информации для анализа, ведь, чем больше понимаешь в том, как что либо работает, тем легче находить пути устранения боттлнеков.

Итак, масштабируемость пропускной способности сети. Потребуется Windows Server 2003 SP2+. Сетевая карта, поддерживающая Receive Side Scaling (можно с достаточной долей уверенности сказать, что подойдет любая серверная сетевая карта, выпущенная в последние 5 лет или любая вообще 1Gb+ NIC, хотя частенько можно увидеть RSS и на 100Mb). Устанавливаем Windows Server и драйвера на карту…

Настройка...

Linux HA на основе Pacemaker

Reading time5 min
Views126K
В своей предыдущей статье я вкратце коснулся темы создания High Availability решения на основе демона heartbeat. Однако, как выяснилось, что-то сложнее чем 2-х узловой кластер на нем делать не так уж удобно. Изучение проблемы вывело меня на след проекта Pacemaker. Его-то мы сейчас в кратце и рассмотрим.
Читать дальше →

Сервер подсчета кликов

Reading time2 min
Views3.2K
Если ваш проект использует подсчет кликов и на нем есть какая-либо солидная нагрузка, то вы наверно задумывались об отдельном решении.

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

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

Использование макросов в MASM на примере создания окна

Reading time6 min
Views11K
В далеком 2001-ом году я проводил много времени за изучением ассемблера под Win32. Тогда после долгих мучений с написанием одного и того же кода по сотне раз я взялся написать для себя небольшую библиотеку макросов. В итоге удалось достаточно серьезно облегчить себе судьбу и уменьшить необходимость повторять огромные полотенца кода, при необходимости написать простейшую программу с одним окном.

Недавно наткнулся на те проекты и решил выложить некоторые из них, может кому пригодится…

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

Information

Rating
Does not participate
Registered
Activity