Как стать автором
Обновить
2
0

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

Отправить сообщение

Подтверждение номера телефона, используя Ruby on rails и Twilio

Время на прочтение2 мин
Количество просмотров9.1K
Как-то раз передо мной стояла задача сделать подтверждение номера телефона. И, так как у меня совсем нет звездочек на гитхабе (и инвайта на хабре), было принято решение сделать гем.

image

В качестве смс-шлюза был выбран сервис Twilio, ибо он удобный и недорогой. Потратив на это дело несколько часов, получился, как по мне, весьма удобный гем.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии11

Проблемы при использовании Math.random()

Время на прочтение18 мин
Количество просмотров45K
image

В английском есть такая аббревиатура — TIFU. Привести здесь её точное значение мы не можем, но вы без труда найдёте его в Сети. А после «литературной обработки» TIFU можно перевести как «сегодня я всё испортил». В контексте этого поста данная фраза относится к использованию функции Math.random() в JavaScript-движке V8. Хотя случилось это не сегодня, а пару лет назад. Да и дров я наломал не по своей вине, корень зла таится в самой этой функции.

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

Дональд Кнут, «Искусство программирования», том 2.

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

  • Мы были идиотами, поскольку использовали генератор псевдослучайных чисел в V8, не понимая его ограничений. И если очень лень, то безопаснее использовать криптографически стойкие генераторы псевдослучайных чисел.
  • В V8 необходима новая реализация Math.random(). Работу текущего алгоритма, кочующего от одного программиста к другому, нельзя считать удовлетворительной из-за слабой, неочевидной деградации, часто встречающейся в реальных проектах.

Хочу подчеркнуть, что сам движок V8 — замечательный продукт и его создатели очень талантливы. Я ни в коей мере не обвиняю их. Просто эта ситуация иллюстрирует, насколько сильно влияют на процесс разработки даже небольшие нюансы.
Читать дальше →
Всего голосов 81: ↑77 и ↓4+73
Комментарии38

11:11. Black Friday made in China

Время на прочтение4 мин
Количество просмотров22K
Китайцы довольно замороченные на магии чисел. Ну вот, например, в Китае практически не встречается цифра 4 – даже в лифтах зачастую нет кнопки с таким номером, почти не встречается она и на автомобильных номерах. У терафобии есть объяснимые причины: слово «четыре» в китайском языке созвучно слову «смерть». Ну или вот цифра 8, помните шутку про неё? "Что такое цифра 8? Это бесконечность, повёрнутая на угол пи-пополам" – с этой цифрой китайцы не шутят – для них это любимая цифра, символ достатка, полноты и совершенства. А как известно, частью совершенства является удовлетворение материальных потребностей. Но для этого есть совсем другие цифры – четыре единицы которые в сумме дают 4 или 11.11 – вот этой магии чисел китайцы радуются особенно бурно. И не без причин – заходите под кат, тоже порадуетесь!

Читать дальше →
Всего голосов 32: ↑22 и ↓10+12
Комментарии49

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность