Мой идеальный смартфон

Долго думал написать заметку на тему того, насколько всё плохо в индустрии мобильных устройств. Вернее, я хотел просто перечислить параметры, при воплощении которых в одном устройстве, я бы не задумываясь его купил. Но получился реквием по мечте.

Для начала требования:

  • Тип корпуса: классический
  • Платформа: Андроид
  • Сенсорный экран: да
  • Диагональ экрана: 3.5-4.3 дюйма
  • Число пикселей на дюйм: от 256 и выше
  • Мультитач: да
  • Устойчивое к царапинам стекло: да
  • Сеть: Bluetooth (профиль AD2P), GPS, Wi-Fi
  • Объем встроенной памяти: от 2Гб
  • Слот для карт памяти: да
  • Частота процессора: от 1.2Ггц
  • Ёмкость аккумулятора: от 1700 мА*ч
  • Автофокусировка: да

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

Можете сами посмотреть на этот выбор на Яндекс.Маркете. Это всё доказывает верность моей догадки — ни один производитель не хочет производить действительно хороший продукт, удовлетворяющий всем мало-мальски адекватным требованиям. Это делается для того, чтобы все пользователи, вне зависимости от того, какое устройство они купят, через полгода-год захотели что-то другое, что-то, что не будет содержать в себе недостатков текущего смартфона. Но оно будет содержать другие! К сожалению, это жестокий бизнес. Никто не думает о пользователях. Они думают только о том, чтобы пользователи сменяли свой смартфон каждые год-два и платили за это новые, такие же, как и в прошлый раз, деньги.

Сюрприз от неизвестного: доверие к расширениям Chrome

Вот так вот. Google как всегда в своём репертуаре. Забота о безопасности их продукта всегда лежит на плечах пользователей.
Если можете, не пользуйтесь продуктами Google. Ни почтой, ни поиском, ни какими-то ни было другими сервисами Google.

Сюрприз от неизвестного: доверие к расширениям Chrome

Защита WordPress от взлома

Не секрет, что в мире очень много злоумышленников. Некоторые могут быть настроены на веселье, а некоторые на конкретную цель — завладеть вашим блогом с целью сделать его частью бот-нета, либо распространителем ссылок на другие ресурсы. А могут и вовсе совершать с помощью вашего сервера разные опасные действия.

Методов взлома бывает два: первый — через уязвимость кода в самом вордпресс, либо в каком-нибудь плагине, а второй — подбор паролей от пользователя с правами администратора.

В первом случае можно посоветовать только обновлять все плагины, темы и сам движок сразу же, как только появилось обновление. Не пренебрегайте этим! Это проект с открытым исходным кодом (opensource), код пишут студенты-недоучки и библиотекари-самоучки. В нём множество недочётов и ошибок.

Во втором — предложу несколько советов. Есть некоторые плагины, довольно сильно повышающие безопасность вашего блога. Я могу порекомендовать два из них: Limit Login Attempts и  Wordfence.

По умолчанию WordPress разрешает сколько угодно попыток входа в систему. Этим пользуются злоумышленники и подбирают пароли по словарю, либо вообще полным перебором по буквам/цифрам. Оба названных плагина реализуют блокировку по IP тех, кто занимается таким перебором.

Отдельно скажу, что Wordfence умеет еще следить за целостностью файлов в вашей установке WordPress, плагинов и тем, и присылает администратору письма тогда, когда надо что-то обновить, или когда возникли проблемы.

SSL для блога

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

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

1. Сначала редактируем значения по умолчанию:

nano /etc/ssl/openssl.cnf

Самое главное, это закомментировать строки со значениями, которые нам не нужны в сертификате.

2. Генерируем ключ

openssl genrsa 2048 > wildcard.hostname.key

3. Создаем сам сертификат

openssl req -new -x509 -nodes -sha1 -days 3652 -key wildcard.hostname.key > wildcard.hostname.crt

Создаем мы его не на вечность, а на 3652 дня, это 10 лет.

4. Ну а потом подставляем его в конфиг nginx, перезапускаем его и — вуаля! Сайт доступен (только) по HTTPS.

Введение

Итак, вы решили начать изучать программирование. Или вы действительно решили стать программистом?  В этом деле, как и в любом другом, надо быть точно уверенным, надо иметь страсть, интерес… Если через пару уроков у вас  не появится желания чего-нибудь сделать своими силами, значит либо вам это не подходит, либо я не смог донести до вас красоту мира программирования.

Я хотел написать несколько небольших отступлений, но получилось довольно неплохое введение. Придется вам его прочитать.

Дело в том, что для того, чтобы заниматься программированием, вы должны понимать, насколько широка эта наука. С одной стороны, мы, программисты, можем считаться ремесленниками, но с другой — настоящими инженерами и изобретателями. Как к этому делу подходить вы решите позже, когда научитесь программировать и получите неплохой в этом опыт. Но сейчас я хочу, чтобы вы представили себе больницу. Пройдитесь мысленно по коридорам, загляните в разные кабинеты и посмотрите на врачей. Заметили, что они все очень разные? Они разные внешне, разные  внутренне, у них разные привычки и характеры. Разное даже отношение к пациентам, несмотря на то, что все они помогают всем этим людям. Но самое главное — у них разные специализации. Стоматолог, офтальмолог, хирург и даже патологоанатом. Каждый из них когда-то давно выбрал свой путь, свою специализацию. Конечно, все они проходили довольно мощную общую подготовку, но в чем-то они получили разную информацию и разный опыт. Точно так же и в профессии программистов. Есть даже несколько разных классификаций. Например, есть низкоуровневые программисты, есть интерпрайзные, есть веб-разработчики и еще куча разных вариантов. В принципе, выбрав однажды свой конкретный путь, вы не обязательно будете обречены заниматься только этими определенными вещами, но смена его тоже не будет легкой. Например, как у хирурга, решившего стать офтальмологом.

Рождество

Древнеегипетский бог Гор — родился 25-го декабря 3000 лет назад от девственницы Изиды, был распят и воскрес через 3 дня.

Бог Аттис, Фригия — 1200 лет до нашей эры, родился у девственницы Наны 25 декабря, распят, воскрес через 3 дня.

Бог Митра — 1200 лет до нашей эры, рожден девственницей 25-го декабря, было 12 учеников, творил чудеса, после смерти был захоронен и через 3 дня воскрес. Его называли Истинным Светом, день поклонения — воскресение.

Кришна, Индия — 900 лет до нашей эры, рожден девственницей Деваки, рождение обозначила звезда на востоке, творил чудеса, после смерти воскрес.

Дионис, Греция — 500 лет до н.э. рожден девственницей 25-го декабря, превращал воду в вино, его называли Царём Царей, Альфа и Омега. После смерти воскрес.

Иисус, еврейская сказка — 0 лет до н.э. Рожден девственницей Марией, вобрал в себя биографии предыдущих богов, творил чудеса, ходил по воде, превращал воду в вино, ходил с 12-ю учениками, был предан и распят (как Гор), воскрес.

Так чьё рождество вы сегодня отмечаете?

Введение в разметку сайта (Урок 1)

Итак, из чего состоят сайты? Чем описываются те, или иные его части и элементы? Какой минимум всех этих непонятных слов нужен, чтобы пользователь зашел по адресу и увидел мой «сайт»?

1. HTML

Первое, что приходит в голову, это теги <html> и </html>. Да, можно воспользоваться ими, но это будет неправильно. Когда-то, несколько десятков лет назад, браузеры были простыми, они «понимали» какой-то минимальный набор тэгов. Тогда люди не задумывались о всех тех возможностях, которые могут появиться на сайтах в будущем. Всё, что требовалось, это установка размеров текста, гарнитуры, цвета и варианта написания типа жирного, или курсивного. Но с тех пор всё очень сильно изменилось. И в процессе изменений изменялись и браузеры тоже. При появлении новых возможностей разработчикам требовалось адаптировать так называемый парсер к пониманию новых тегов и новых возможностей.

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

Читать далее