Как стать автором
Обновить
8
0
Вова Литичевский @pikko

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

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

Что нового в nginx?

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


Максим Дунин (Nginx, Inc.)


Ведущий: Я представляю вашему вниманию следующего докладчика. Встречайте – Максим Дунин. И он расскажет о том, что же нового появилось в технологии под названием nginx.

Дисклеймер: речь пойдёт о нововведениях в 2016 году. Можно подумать, что это давно, но информация об изменениях в changelog от автора этих самых изменений полезна всегда!

Максим Дунин: Добрый день! Я Максим Дунин. Как вы, наверное, знаете, я разработчик nginx. Сегодня буду вам читать changelog вслух и с выражением. Для начала давайте определимся, с какого именно места мы будем читать changelog. Посмотрим на статистику.


Всего голосов 71: ↑70 и ↓1+69
Комментарии45

Найден растворитель для клея, которым приклеиваются батареи MacBook Pro

Время на прочтение3 мин
Количество просмотров76K

Компания Apple очень серьёзно подходит к тому, чтобы сами пользователи или сторонние мастера ни в коем случае не могли починить её технику. Это важная часть закрытой экосистемы, которая создана с целью максимизировать прибыль. Например, литий-ионные аккумуляторы теряют свою ёмкость через несколько лет, а заменить их самостоятельно у человека нет никакой возможности. А тут как раз подоспела презентация новой модели MacBook — и человек решает купить новый ноутбук, потому что у старого уже не держат аккумуляторы. Так Apple поддерживает продажи.

Мощный клей, которым Apple приклеивает аккумуляторы к корпусу ноутбука MacBook Pro, стал настоящим кошмаром для ремонтников. На заводах по утилизации электроники рабочие отдирают эти аккумуляторы железным ломом, ломая и корпус, и «ретину», и всё остальное.

Новый клей начали использовать в моделях MacBook Pro с 2012 года. Как говорит инженер Бретт Хартт (Brett Hartt) из компании iFixit, это мощный промышленный клей — примерно такой же применяют для приклеивания стеклянных панелей в небоскрёбах, в госпиталях и т. д.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии328

Реверс-инжиниринг одной строчки JavaScript

Время на прочтение10 мин
Количество просмотров47K
Несколько месяцев назад я получил от друга такое письмо:



Тема: Можешь объяснить мне эту одну строчку кода?

Текст: Считай меня тупым, но… я не понимаю её и буду благодарен, если растолкуешь подробно. Это трассировщик лучей в 128 символах. Мне кажется, он восхитительный.

<pre id=p><script>n=setInterval("for(n+=7,i=k,P='p.\\n';i-=1/k;P+=P[i%2?(i%2*j-j+n/k^j)&1:2])j=k/i;p.innerHTML=P",k=64)</script>



Эта строчка JavaScript отрисует анимацию, которая показана на изображении под катом. В браузере она запускается здесь. Скрипт написан автором www.p01.org, где вы можете найти эту и много других классных демок.
Всего голосов 136: ↑134 и ↓2+132
Комментарии33

Эпигенетические часы и другие биомаркеры старения

Время на прочтение10 мин
Количество просмотров42K

Что такое биомаркер старения и зачем он нужен?


Все мы знаем кого-то, кто “прекрасно сохранился” для своего возраста, и кого-то, кто “стар не по годам”:


Собственно, биомаркеры старения нам как раз и нужны для того, чтобы можно было объективно сказать: да, вам 50, но здоровье у вас на уровне 35-летней. А вот вам, молодой человек, стоило бы повнимательней отнестись к своему здоровью — ваш биологический возраст на 10 лет превышает хронологический, а это чревато 48%-ым повышением риска смерти.

При чём тут старение и вероятность смерти? А при том, что у людей, как и у большинства млекопитающих, старение сопровождается экспоненциальным риском смертности:


И если в 30 лет годовая вероятность умереть у вас составляет 1 шанс на тысячу, то к 80 она повышается в 100 раз. Именно это возрастное повышение вероятности умереть геронтологи и называют старением. И нет, стареет далеко не “всё живое”. Есть виды, которые с возрастом наоборот “молодеют” — их вероятность смерти падает, а плодовитость повышается:
Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Комментарии44

Scheduling: мифы и реальность. Опыт Яндекса

Время на прочтение10 мин
Количество просмотров47K
В последние пару лет я занимаюсь построением различных планировщиков, и мне пришло в голову поделиться своим нелёгким опытом с коллегами. Речь идёт о двух категориях коллег. Первые — это желающие узнать, как разработать свой scheduler за 21 день. Вторые — те, кому нужен новый scheduler совсем без смс и регистрации, просто чтобы работал. Особенно хотелось бы помочь второй категории людей.

Сундуков А.А. Очередь. 1986. Холст, масло

Сначала, как водится, стоит сказать несколько общих слов. Что такое scheduler (планировщик, или, для простоты, «шедулер»)? Это такая компонента системы, которая занимается распределением ресурса или ресурсов системы по потребителям. Разделение ресурса может происходить в двух измерениях: в пространстве и времени. Планировщики чаще всего фокусируются на втором измерении. Обычно под ресурсом подразумевают процессор, диск, память и сеть. Но, что греха таить, шедулить можно и любую виртуальную ерунду. Конец общих слов.
Читать дальше →
Всего голосов 86: ↑82 и ↓4+78
Комментарии8

Разбиение слов на элементы таблицы Менделеева

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


(Полный исходный код лежит тут)


Сидя на пятичасовом занятии по химии, я часто скользил взглядом по таблице Менделеева, висящей на стене. Чтобы скоротать время, я начал искать слова, которые мог бы написать, используя лишь обозначения элементов из таблицы. Например: ScAlEs, FeArS, ErAsURe, WAsTe, PoInTlEsSnEsS, MoISTeN, SAlMoN, PuFFInEsS.


Затем я подумал, какое самое длинное слово можно составить (мне удалось подобрать TiNTiNNaBULaTiONS), поэтому я решил написать программу на Python, которая искала бы слова, состоящие из обозначений химических элементов. Она должна была получать слово и возвращать все его возможные варианты преобразования в наборы химических элементов:


  • Вход: Amputations
  • Выход: AmPuTaTiONS, AmPUTaTiONS
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии24

Хочу отказаться от услуг РосКомНадзора по защите меня от информации (в сети). Как это сделать?

Время на прочтение3 мин
Количество просмотров95K

"Какая форма заявления должна быть? Куда подавать?"


Я задал (кеш гугла) такой вопрос на Тостере. Его удалили через некоторое время, так как он "вне тематики ресурса". Далее я попросил у модератора разъяснить поподробней и он ответил: "Это вопрос дискуссионный и на него не существует однозначного ответа".


За время пока вопрос существовал я получил несколько ответов:


1 Обратиться в Конституционный суд.
2 Оформить визу и выехать из юрисдикции полномочий РосКомНадзора.


Задав такой же вопрос интернету, оказалось, что не я один задался этим вопросом. Пользователь zakabum сайта RuTracker.org выложил на форуме образец заявления (зеркало) которое необходимо подать провайдеру. А также выкладывает новые свои заявления в ходе переписки со своим провайдером.

Читать дальше →
Всего голосов 168: ↑126 и ↓42+84
Комментарии686

Игры, в которых нужно писать код: Grid Garden, Elevator Saga и другие

Время на прочтение3 мин
Количество просмотров139K

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

Всего голосов 72: ↑72 и ↓0+72
Комментарии46

Бумажный компьютер

Время на прочтение1 мин
Количество просмотров58K
Всем привет! В 15 лет я стал одержим идеей создания бумажной вычислительной машины — полноценного механического компьютера, созданного из бумаги, картона и зубочисток. Меня поразило то, что бумага существует уже более 2000 лет, но до сих пор никто не утруждал себя созданием бумажного компьютера.

Спустя 3 года работы с перерывами, я решил поделиться с интернетом своими наработками в данном направлении. На данный момент, у меня готовы все основные логические вентили, сумматоры, триггеры и т.д. Теоретически, можно уже склеить целую бумажную машину с бумажной памятью.


Читать дальше →
Всего голосов 140: ↑138 и ↓2+136
Комментарии80

Функциональное программирование для всех

Время на прочтение33 мин
Количество просмотров352K

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

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

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →
Всего голосов 188: ↑181 и ↓7+174
Комментарии151

OpenSSL, ssl_ciphers и nginx: прокачиваем на 100%

Время на прочтение11 мин
Количество просмотров90K


Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да братья.


Также вы узнаете почему 100% по тестам — не всегда хорошо в реальности.

Читать дальше →
Всего голосов 66: ↑65 и ↓1+64
Комментарии92

Радикальное продление жизни: вещества против старения

Время на прочтение8 мин
Количество просмотров70K

Картина Евгении Кашиной «Эликсир бессмертия»

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

Но есть и хорошие новости: в эпоху нейросетей, генной терапии и машинного обучения стало возможным изучить процесс старения клеток, тканей и органов. Уже сейчас мы знаем некоторые методы замедления скорости старения, а через 10–20 лет, возможно, научимся обращать эти процессы вспять. В любом случае, лучше прямо сейчас задаться целью прожить здоровым дольше, чтобы своими глазами увидеть, сможет ли наука окончательно решить вопрос патологии старения.
Читать дальше →
Всего голосов 56: ↑51 и ↓5+46
Комментарии224

Как работает реляционная БД

Время на прочтение51 мин
Количество просмотров541K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Всего голосов 232: ↑229 и ↓3+226
Комментарии134

Tarantool: Хороший, Плохой, Злой

Время на прочтение19 мин
Количество просмотров36K
image Многие слышали о NoSQL базе данных Tarantool, знают о том, что она умеет хранить данные в памяти, очень быстро их обрабатывает и обладает высокой производительностью. Тарантул был написан серьезными ребятами, которые обслуживают сервисы с сотнями тысяч запросов в секунду.

Система кажется сложной. Несмотря на российские корни, изначально даже не было документации на русском языке. Чем же может помочь этот мощный инструмент обычным парням — программистам и начинающим разработчикам? Остальные могут сразу посмотреть результат

Попробуем написать простой занимательный сервис, способный выдержать большую нагрузку. И никакого SQL!
Начнем!
Всего голосов 38: ↑35 и ↓3+32
Комментарии11

Browser Fingerprint – анонимная идентификация браузеров

Время на прочтение14 мин
Количество просмотров216K


Валентин Васильев (Machinio.com)


Что же такое Browser Fingerprint? Или идентификация браузеров. Очень простая формулировка — это присвоение идентификатора браузеру. Формулировка простая, но идея очень сложная и интересная. Для чего она используется? Для чего мы хотим присвоить браузеру идентификатор?


  • Мы хотим учитывать наших пользователей. Мы хотим знать, пришел ли пользователь к нам первый раз, пришел он во второй раз или в третий. Если пользователь пришел во второй раз, мы хотим знать, на какие страницы он заходил, что он до этого делал. С анонимными пользователями это невозможно. Если у вас есть система учета записей, пользователь логинится, мы все про него знаем — мы знаем его учетную запись, его персональные данные, мы можем привязать любые действия к этому пользователю. Здесь все просто. В случае с анонимными пользователями все становится гораздо сложнее.
Всего голосов 75: ↑54 и ↓21+33
Комментарии167

Охота на мифический MVC. Обзор, возвращение к первоисточникам и про то, как анализировать и выводить шаблоны самому

Время на прочтение24 мин
Количество просмотров143K
— Не понимаю, почему люди так восхищаются этим Карузо? Косноязычен, гугнив, поёт — ничего не разберешь!
— А вы слышали, как поёт Карузо?
— Да, мне тут кое-что из его репертуара Рабинович напел по телефону.

Детектив по материалам IT. Часть первая


Я осознаю, что писать очередную статью на тему Модель-Вид-Контроллер это глупо и вредно для «кармы». Однако с этим «паттерном» у меня слишком личные отношения – проваленный проект, полгода жизни и тяжелой работы «в корзину».


Проект мы переписали, уже без MVC, просто руководствуясь принципами – код перестал быть похож на клубок спагетти и сократился наполовину (об этом позже, в обещанной статье про то, как мы применяли «принципы» в своем проекте). Но хотелось понять, что же мы сделали не так, в чем была ошибка? И в течении долгого времени изучалось все, что содержало аббревиатуру MVC. До тех пор пока не встретились исходные работы от создателя – Трюгве Реенскауга…


И тогда все встало на свои места. Оказалось что фактически на основе принципов мы пере-изобретали «original MVC». А то, что зачастую преподносится как MVC, не имеет к нему никакого отношения… впрочем также как и к хорошей архитектуре. И судя по тому сколько людей пишет о несостоятельности «классического MVC», спорит о нем и изобретает его всевозможные модификации, не одни мы столкнулись с этой проблемой.


Более 30 лет собранные в MVC идеи и решения остаются наиболее значимыми для разработки пользовательских интерфейсов. Но как ни странно, несмотря на существующую путаницу и обилие противоречивых трактовок, разработчики продолжают довольствоваться информацией «из вторых рук», черпая знания о MVC из википедии, небольших статей в интернете и фреймворков для разработки веб-приложений. Самые «продвинутые» читают Мартина Фаулера. И почему-то почти никто не обращается к первоисточникам. Вот этот пробел и хотелось бы заполнить. И заодно развеять некоторые мифы.


Читать дальше →
Всего голосов 73: ↑71 и ↓2+69
Комментарии390

4 вида утечек памяти в JavaScript и как с ними бороться

Время на прочтение16 мин
Количество просмотров130K

В этой статье мы рассмотрим распространённые виды утечек памяти в клиентском JavaScript. Также мы узнаем, как их обнаружить с помощью Chrome Development Tools.


timeline в Chrome Dev Tools

Читать дальше →
Всего голосов 98: ↑98 и ↓0+98
Комментарии16

Уязвимости выполнения произвольного кода в PHPMailer и SwiftMailer

Время на прочтение3 мин
Количество просмотров24K

В последние дни было зарегистрировано три уязвимости, касающиеся PHPMailer и SwiftMailer:



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

Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии11

А если без JavaScript?

Время на прочтение3 мин
Количество просмотров72K
В нашем мире без JavaScript никуда! Куча фреймворков, библиотек и прочей радости! jQuery плотно вошел в нашу жизнь. React с Angular пробивают дорогу к светлому будущему. Да и не за горами поддержка браузерами ES6 без Babel.

Но если тема заходит об обычном сайте со стандартным функционалом, не редки случаи, когда JavaScript начинают “злоупотрелять”. И все, в принципе, нормально… Но порой задаешься вопросом: «А если без JavaScript?».
Всего голосов 90: ↑76 и ↓14+62
Комментарии131

Малиновый Прог против Интернета Кирпичей, или Raspberry Pi с графикой на read-only microSD

Время на прочтение16 мин
Количество просмотров87K
Запуск Raspberry Pi с полной поддержкой графики на microSD, навсегда остающейся в режиме read-only после установки системы. Отсутствие какой-либо записи данных на флэш-память повышает надёжность устройства, приближая его к промышленному классу изделий. Пошаговая инструкция. Небольшой театр инженерного абсурда для развлечения аудитории.


Мне понадобилось сетевое устройство с открытым кодом и выходом HDMI, и я решил попробовать Малиновый Прог. Да, я именно так предлагаю переводить Pi: Прог. Понятное дело, даже одноплатнику нужна операционка. И вот, захожу я на официальный сайт, ожидая встретить там подробное руководство по созданию суровой, неломаемой Вещи à la turnkey box. Но народ, как ни в чём не бывало, устанавливает Ubuntu (т.е. Raspbian Jessie) прямо на microSD, размещая и swap там же. Как обычный десктоп, face palm.

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

Итак, по стандартной инструкции нормальный одноплатник превращается в раздутый десктоп со средним временем жизни год-полтора, пока изношенная флэшка не сдохнет, превратив в общем-то хороший девайс в кирпич. И большинство людей, похоже, это вполне устраивает. Меня — нет.
Читать дальше →
Всего голосов 65: ↑60 и ↓5+55
Комментарии205
1
23 ...

Информация

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