Pull to refresh
62
0
Закревский Александр @multik

Разработчик

Send message

Все на https, безопасно и дешево

Reading time2 min
Views24K

Краткое введение


В наши дни все понимают насколько простой задачей является угон незащищенной http сессии.
И останавливать от повсеместного внедрения может только цена на покупку сертификата, www.startssl.com решает эту проблему, раздавая бесплатные сертификаты (Class 1). Verified (Class 2) стоят копейки.
Читать дальше →
Total votes 82: ↑74 and ↓8+66
Comments52

Очевидные 3 правила безопасности

Reading time2 min
Views60K

Правило №1. Делайте все авторизационные куки HttpOnly


Куки с флагом HttpOnly не видны браузерному коду, а отправляются только на сервер. На практике у вас почти никогда нет необходимости получать их содержимое со стороны клиента (если такая необходимость почему-то у вас возникла — пересмотрите архитектуру авторизации, скорее всего, там что-то не так). А вот злоумышленнику, нашедшему XSS — а XSS так или иначе когда-нибудь где-нибудь найдется — отсутствие HttpOnly на авторизационных куках доставит много радости.

Читать дальше →
Total votes 173: ↑140 and ↓33+107
Comments117

1/998001

Reading time1 min
Views7.4K
image

Работа с числами порой преподносит интересные сюрпризы. Некоторые математики делали карьеру, находя такие интересные, но в большинстве случаев бесполезные случаи.

К сожалению, большинство инструментов, которые применяются для вычислений, будут прятать результат, но если вы найдете такой, который этого (1/998001=1.002003004005006e-06) не делает, то, может, не сразу заметно, но деление 1 на 998001 дает в результате все числа от 001 до 999.

Если вам интересна такого рода математика, то 1/9801 выдаст похожий результат, последовательность чисел от 01 до 99

Можно посмотреть в WolframAlpha. Нажимайте «More digits» в блоке «Decimal approximation»:
www.wolframalpha.com/input/?i=1%2F998001
www.wolframalpha.com/input/?i=1%2F9801
Total votes 179: ↑154 and ↓25+129
Comments69

Кое-что о соглашениях об именах почтовых ящиков

Reading time4 min
Views53K

Заведя для себя «почту для домена» на Яндексе, я решил открыть свободную регистрацию посторонним юзерам почтовых ящиков на своем «модном» домене. Помимо включения функции catch-all, которая направляет всю входящую почту несуществующих ящиков моего домена на мой основной ящик, предо мной встала необходимость зарезервировать за собой все «стандартные» названия ящиков, чтобы не было недоразумений, когда какое-то имя уже забил посторонний, и вся «служебная» почта уходит совсем не вам. В П.Д.Д. можно, конечно, в любой момент экспроприировать любой ящик подконтрольного домена, но ведь осадочек-то остается. Я озадачился: какие же имена почтовых ящиков являются стандартными и системными? Техподдержка Яндекса ответила, что они резервируют для себя только имя postmaster@ на каждом домене, чтобы отслеживать жалобы и проблемы с почтой, и что на данный момент вопрос о наборе резервированных имен у них остается открытым. Далее, результат поиска в интернете оказался немного предсказуем.
Читать дальше →
Total votes 101: ↑94 and ↓7+87
Comments35

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

Reading time2 min
Views150K
Из знакомых мне айтишников очень немногие стараются правильно произносить английские слова. Конечно, привычнее произносить 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 — оупен-би-эс-ди и т.д.

Обычные слова дальше
Total votes 387: ↑343 and ↓44+299
Comments514

Собрание материалов по лицензиям и авторскому праву GNU

Reading time2 min
Views1.4K
image

Что такое авторское лево
www.gnu.org/copyleft/copyleft.ru.html
www.gnu.org/copyleft/copyleft.html

Категории свободных и несвободных программ
www.gnu.org/philosophy/categories.ru.html
www.gnu.org/philosophy/categories.html

Проблема лицензии BSD
www.gnu.org/philosophy/bsd.ru.html
www.gnu.org/philosophy/bsd.html

Свободные программы надежнее
www.gnu.org/software/reliability.ru.html
www.gnu.org/software/reliability.html

Почему «открытый исходный код» не передает понятия свободное ПО
www.gnu.org/philosophy/open-source-misses-the-point.ru.html
www.gnu.org/philosophy/open-source-misses-the-point.html

Зачем авторское лево
www.gnu.org/philosophy/why-copyleft.ru.html
www.gnu.org/philosophy/why-copyleft.html

FAQ по лицензии GNU
www.gnu.org/licenses/gpl-faq.html
Читать дальше →
Total votes 75: ↑63 and ↓12+51
Comments27

Дерево ван Эмде Боаса

Reading time6 min
Views18K
Всем доброго времени суток!

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

Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?

Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.

Что же там еще есть такого вкусного?
Total votes 192: ↑190 and ↓2+188
Comments39

Мой опыт вывода денег с заблокированного PayPal аккаунта

Reading time7 min
Views53K
Вот уже около 3-х лет занимаюсь интернет коммерцией. Работа в основном направлена на зарубежные сайты по продаже электроники. Начинал бизнес с открытия ebay аккаунта и уже тогда вопрос стал ребром, т.к. для работы с ebay нужен верифицированный аккаунт PayPal. Я являюсь гражданином Украины, следовательно, никаких шансов открыть свой собственный аккаунт у меня не было, т.к. PayPal ни тогда ни сейчас не работает с Украиной, поэтому пришлось просить друга, который проживает в Великобритании, открыть аккаунт на его имя. Впринципе, открытие аккаунта в Англии является делом обыденным. Все что требуется, это действующий банковский счет, после чего нужно пройти несколько этапов для того чтобы подтвердить что вы владелец этого счета. Так же вы указываете свой адрес, который могут попросить подтвердить. Для этого достаточно будет отправить так называемый Bank Statement, т.е. выписку из банка. Выглядит она примерно так:

image

Читать дальше →
Total votes 100: ↑96 and ↓4+92
Comments56

Что должен знать о времени каждый программист

Reading time3 min
Views95K

Некоторые замечания о времени

  • UTC: время на нулевом меридиане называется Всемирное координированное время, Universal Coordinated Time. Несовпадение акронима было вызвано необходимостью универсальности его для всех языков.
  • GMT: ранее вместо UTC использовалось среднее время по Гринвичу (Greenwich Mean Time, GMT), так как нулевой меридиан был выбран так, чтобы проходить через Гринвичскую королевскую обсерваторию.
  • Прочие часовые пояса могут быть записаны как смещение от UTC. Например, Австралийское восточное стандартное время (EST) записывается как UTC+1000, то есть время 10:00 по UTC есть 20:00 по EST того же дня.
Читать дальше →
Total votes 250: ↑237 and ↓13+224
Comments100

XPath наглядно

Reading time1 min
Views60K
XPath является одним из ключевых моментов на дороге к пониманию XSLT. И на первых порах хочется получить какой-нибудь простой способ поэкспериментировать с ним, чтобы в деталях разобраться, как он работает. Способа такого, впрочем, не наблюдается. Приходится или качать совсем не бесплатные XML/XSLT редакторы, или довольствоваться статичными картинками с zvon.org. Может быть, я плохо искал. Но с моей колокольни все обстоит именно так. И когда передо мной в очередной раз встала задача «Объяснить XSLT», в голове и родилась идея крохотного сервиса. После того, как все заработало, было решено выкатить его для всеобщего пользования: наверняка не я один сталкивался с похожими проблемами.
Читать дальше →
Total votes 100: ↑93 and ↓7+86
Comments35

Беззамочные алгоритмы: ненастойчивый кэш

Reading time5 min
Views2.8K
(Тот факт, что русского перевода понятию «lock-free» в литературе ещё не устоялось, — нисколько меня не убеждает, что такого перевода не должно быть.)

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

BOOL IsPrime(int n)
{
 static int nLast = 1;
 static BOOL fLastIsPrime = FALSE;

 // если значение параметра не изменилось с прошлого раза,
 // воспользуемся готовым результатом
 if (n == nLast) return fLastIsPrime;

 // вычислим и запомним новый результат
 nLast = n;
 fLastIsPrime = slow_IsPrime(n);
 return fLastIsPrime;
}

Само собой, этот код потоконебезопасен: если один поток находится внутри вызова slow_IsPrime(), то другой поток, вызвавший IsPrime(), застанет значения переменных nLast и fLastIsPrime несоответствующими одно другому.

Простое решение — заключить код в критическую секцию; но простота идёт в ущерб производительности: если, скажем, nLast = 5, fLastIsPrime = TRUE, и два потока одновременно вызывают IsPrime(5), то совершенно ни к чему им выстраиваться в очередь: ничего не мешает им одновременно воспользоваться кэшированным значением.

Посмотрим, как можно реализовать наш кэш беззамочно.
Читать дальше →
Total votes 28: ↑21 and ↓7+14
Comments40

Примеры xpath-запросов к html

Reading time4 min
Views526K
Xpath — это язык запросов к элементам xml или xhtml документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. Всю «черную» работу за вас выполнит интерпретатор языка xpath.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
Читать дальше →
Total votes 61: ↑57 and ↓4+53
Comments47

«Право изготовителя базы данных»: что это такое?

Reading time6 min
Views18K
Четвертая часть Гражданского кодекса, регулирующая отношения в сфере «интеллектуальной собственности», повторяет подавляющее большинство норм, которые содержались в тех законах, которые были до нее: «Об авторском праве...», Патентном законе, законе «О правовой охране программ для ЭВМ...», и других.

Вступление ее в силу сопровождалось обсуждением в интернете, участники которого почему-то считали, будто новая часть ГК «ужесточила охрану авторских прав», однако, мнения эти не имели под собой никаких оснований. Кардинальных изменений в главах, посвященных авторскому праву, сравнительно немного. А вот то, что четвертая часть действительно «ужесточила» – так это регулирование смежных прав, прежде всего путем введения новых их видов. «Смежными» называются такие права, которые связаны не с созданием произведения, а доведением его до аудитории. Например, поэт и композитор являются авторами песни, а вот исполнитель этой песни и изготовитель ее фонограммы обладают смежными правами.

Часто авторские и смежные права путают, но лучше их все же различать. Например, четвертой частью ГК введено так называемое «смежное право публикатора», в соответствии с которым тот, кто впервые опубликовал произведение, получает на срок в двадцать пять лет право ограничивать его использование – даже в том случае, если сроки охраны этого произведения давно истекли и оно перешло в общественное достояние. Рядом с этим правом стоит и «право изготовителя базы данных», о котором мы сейчас и поговорим…
Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments29

Взгляд на современные системы защиты от спама веб-форм

Reading time7 min
Views12K

О чем пойдет речь


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

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

Неоднократно на разных ресурсах поднимались подобные темы, но все статьи, которые попадались мне на глаза, были написаны людьми, находящимися по другую сторону баррикад.
Читать дальше →
Total votes 235: ↑216 and ↓19+197
Comments226

Из чего готовят Google Analytics Cookies

Reading time3 min
Views23K
печеньки
Добрый день.
Недавно одни из наших заказчиков выразили желание получать дополнительную информацию о посетителях своего сайта, конкретнее — о людях, заполнивших контактную форму. Это крупная европейская компания и им хотелось бы «фильтровать» своих потенциальных клиентов. Поясню на примере — допустим, решают они организовать выставку своего оборудования в Венгрии и им нужно решить, кто из венгров, оставлявших им свои контакты, скорее всего стоящий клиент, а кто «мимо проходил».
Основными показателями «надежности» клиента для нас стали: число посещений сайта, время проведенное на сайте, количество просмотренных страниц. Всю эту информацию мы получили из Google Analytics Cookies.

Что же из себя представляют печеньки от Google?

Читать дальше →
Total votes 131: ↑126 and ↓5+121
Comments17
12 ...
27

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Registered
Activity