В этой статье собрано девять советов о том как повысить производительность вашего приложения на Vue, увеличить скорость отображения и уменьшить размер бандла.
Роман @Caman
Пользователь
Как подписать ваше гибридное мобильное приложение для размещения в Google Play
4 мин
24KИтак, вы трудились много дней (а может и ночей), и вот ваше первое гибридное мобильное приложение готово. Оно достаточно стабильно, большинство критичных багов закрыто. Остались мелкие, но помня о том, что перфекционизм — зло, вы принимаете волевое решение выложить приложение.
Необходимое условие для этого — наличие подписанного APK файла. Как подписать apk файл, вы узнаете из этой статьи.
Необходимое условие для этого — наличие подписанного APK файла. Как подписать apk файл, вы узнаете из этой статьи.
+17
Школа магии PHP
18 мин
27KЧто такое магия в PHP? Обычно под этим подразумевают методы вроде
![](https://habrastorage.org/webt/kd/xp/vm/kdxpvmeklgs6av1hp8ldzbnq4vc.jpeg)
Давайте отбросим установленные рамки правил ООП и сделаем невозможное возможным в школе магии PHP. Главный и первый волшебный преподаватель школы — Александр Лисаченко (NightTiger). Он научит магическому мышлению и, возможно, вы полюбите магические методы, нестандартные способы доступа к свойствам, изменение контекстов, аспектно-ориентированное программирование и потоковые фильтры.
_construct()
или __get()
. Магические методы в PHP — это лазейки, которые помогают разработчикам выполнять удивительные вещи. В сети полно инструкций по их использованию, с которыми вы наверняка знакомы. Но что если мы скажем, что вы даже не видели настоящую магию? Ведь, чем больше вам кажется, что вы знаете все, тем больше магии ускользает от вас.![](https://habrastorage.org/webt/kd/xp/vm/kdxpvmeklgs6av1hp8ldzbnq4vc.jpeg)
Давайте отбросим установленные рамки правил ООП и сделаем невозможное возможным в школе магии PHP. Главный и первый волшебный преподаватель школы — Александр Лисаченко (NightTiger). Он научит магическому мышлению и, возможно, вы полюбите магические методы, нестандартные способы доступа к свойствам, изменение контекстов, аспектно-ориентированное программирование и потоковые фильтры.
+54
Хакинтош: разворачиваем macOS Sierra на Intel-PC подробно и понятно
13 мин
1.1MТуториал
ПРОЧТИ МЕНЯ ПОЖАЛУСТО
1. Все файлы залиты на МЕГУ. Кто испытывает с ней проблемы — в комментариях перезалили на торрент.
2. Пожалуйста, не спрашивайте меня про установку Мака на ноутбуки. Прошу вас. Пожалуйста. Это очень геморройный процесс. Поставьте себе убунту и подключите тему Мака. Тот же экспириенс получите
3. Я на хабре редко отвечаю, пишите в вк по всем вопросам.
Если вы НЕ МОЖЕТЕ распаковать файлы на флешку, пожалуйста, отойдите от кливиатуры и срочно прочитайте книгу «Компьютер для чайников: подробное пособие как пользоваться ПК»!!!
1. Все файлы залиты на МЕГУ. Кто испытывает с ней проблемы — в комментариях перезалили на торрент.
2. Пожалуйста, не спрашивайте меня про установку Мака на ноутбуки. Прошу вас. Пожалуйста. Это очень геморройный процесс. Поставьте себе убунту и подключите тему Мака. Тот же экспириенс получите
3. Я на хабре редко отвечаю, пишите в вк по всем вопросам.
Данный мануал/гайд/etc написан для тех, кому лень собирать по кускам ту или иную информацию об установке «мака» на PC, все понятно и по полочкам.
+62
Работа начинается с тестирования
4 мин
8.9KВ жизни каждого разработчика наступает момент, когда он задумывается над созданием тестовой составляющей для своего детища. Поправлюсь — в жизни каждого хорошего разработчика. Когда ты джуниор и не несешь особой ответственности, имеешь право на уйму ошибок и можешь их исправить в любой момент. Ты не отвечаешь за тот продукт, что создаешь и не имеешь мотивации тратить лишнюю минуту на перепроверку созданного кода. «Да ничего, этот косяк не воспроизведется», «кажется, эта штука работает», «ну как минимум, она делает то что нужно» — если вы желаете перерасти уровень программерских яслей, то придётся свести на нет каждую из этих мыслей.
С развитием собственного опыта программирования, у вас появляются новые всё более и более крутые/крупные клиенты. От некоторых вы даже будете в восторге (от всех, если вы прям везунчик) — и люди хорошие, и оплачивают щедро, и не придирчивы к возникающим проблемам. Давайте рассмотрим один такой простой случай (очень простой, но главное то, что за этим стоит) создания обработчика формы от программиста, не знающего хлопот.
С развитием собственного опыта программирования, у вас появляются новые всё более и более крутые/крупные клиенты. От некоторых вы даже будете в восторге (от всех, если вы прям везунчик) — и люди хорошие, и оплачивают щедро, и не придирчивы к возникающим проблемам. Давайте рассмотрим один такой простой случай (очень простой, но главное то, что за этим стоит) создания обработчика формы от программиста, не знающего хлопот.
+16
Английские слова
36 мин
66KТуториал
Английские слова — это ключ к пониманию английского языка.
![](https://habrastorage.org/files/48a/d1a/431/48ad1a431d7743348d75f18109eddfa7.jpg)
1000 самых популярных английских слов — это 85% (процентов) слов используемых в речи и письме английского языка. Что соответствует закону Парето. Ниже представлены английские слова по алфавиту из этой 1000 слов.
![](https://habrastorage.org/files/48a/d1a/431/48ad1a431d7743348d75f18109eddfa7.jpg)
1000 самых популярных английских слов — это 85% (процентов) слов используемых в речи и письме английского языка. Что соответствует закону Парето. Ниже представлены английские слова по алфавиту из этой 1000 слов.
0
Отказоустойчивый кластер Master-Slave на PostgreSQL
9 мин
122KПриветствую, хаброжители!
В этой статье я хочу поделиться опытом развертывания кластера Master-slave на СУБД PostgreSQL. Отказоустойчивость достигается с помощью возможностей pgpool-II (failover, online recovery).
pgpool — это прекрасное средство для масштабирования и распределения нагрузки между серверами и, думаю, немногие знают о возможностях автоматического создания failover на ведомом сервере при отказе ведущего и как добавить новые мощности в уже работающий кластер без отключения всего кластера.
В этой статье я хочу поделиться опытом развертывания кластера Master-slave на СУБД PostgreSQL. Отказоустойчивость достигается с помощью возможностей pgpool-II (failover, online recovery).
pgpool — это прекрасное средство для масштабирования и распределения нагрузки между серверами и, думаю, немногие знают о возможностях автоматического создания failover на ведомом сервере при отказе ведущего и как добавить новые мощности в уже работающий кластер без отключения всего кластера.
+47
Гарвардский курс CS50 на русском. Все серии
4 мин
604K![](https://habrastorage.org/web/b81/7b7/977/b817b7977b62431fb640ff7aa6826165.jpg)
Друзья, мы рады сообщить, что перевод всего гарвардского курса CS50 закончен.
Мы писали, что в курсе 24 серии, однако последние две оказались одной и той же лекцией (одна прочитана в Гарварде, а другая в Йеле), поэтому в списке переведённых лекций не 24, а 23.
Список лекций под катом.
Что вы узнаете, прослушав этот курс:
- Основы компьютерных наук и программирования;
- Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
- Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
- Основы языка программирования C и Scratch;
- Основы баз данных и SQL;
- Веб-разработка: основы CSS, HTML, JavaScript и PHP;
- Основы подготовки презентации проектов по программированию.
Курс переведён и озвучен нашей студией по заказу JavaRush, и мы хотим сказать им огромное спасибо за поддержку!
+34
Гарвардский курс CS50 «Основы компьютерных наук и искусства программирования»
3 мин
56K![](https://habrastorage.org/files/71e/1db/40a/71e1db40a25b4dd7918c2900dc001d14.png)
Вот уже несколько месяцев специально для JavaRush мы переводим и озвучиваем самый популярный в мире университетский курс о CS50 — «Основы компьютерных наук и искусства программирования» (трейлер). Его уже много лет очно читают для студентов Гарварда и для воспитанников Йельского университета, а в последнее время ещё и заочно для многомиллионной аудитории интернета.
Это перевод самой новой версии курса, который стартовал осенью 2015 года. В курсе 24 лекции и постепенно мы переведём их все. Намедни мы перевели 15-ю лекцию, её вы найдёте под катом в списке всех переведённых на сегодняшний день лекций.
Что вы узнаете, прослушав этот курс:
- Основы компьютерных наук и программирования;
- Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
- Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
- Основы языка программирования C и Scratch;
- Основы баз данных и SQL;
- Веб-разработка: основы CSS, HTML, JavaScript и PHP;
- Основы подготовки презентации проектов по программированию.
+22
Multi-source репликация в MySQL5.7
7 мин
22KСегодня мой рассказ будет о такой захватывающей штуке, как репликация баз данных в MySQL из нескольких источников. Отмечу, что данная статья не претендует на звание «истины в последней инстанции» и призвана осветить особенности данной технологии в разрезе возникшей у меня проблемы. Итак, приступим. Однажды в далёкой-далёкой галактике...
+12
Наиболее частые проблемы Python и решения (перевод)
2 мин
18KПеревод статьи «Most Frequent Python Problems and Solution» с сайта pamno.com.
Мы проанализировали Stack Overflow на предмет наиболее часто встречающихся проблем и резюмировали ответы.
Совместимо с Python 2.x/3:
Совместимо с Python 2.x/3:
Мы проанализировали Stack Overflow на предмет наиболее часто встречающихся проблем и резюмировали ответы.
1. Как мне проверить, существует ли файл, используя Python, без использования try оператора?
Совместимо с Python 2.x/3:
import os
print os.path.isfile(fname)
2. Лучший способ проверить список на пустоту
Совместимо с Python 2.x/3:
li=[]
if not li:
print “empty"
-8
19 советов по повседневной работе с Git
14 мин
286KТуториал
Перевод
![](https://habrastorage.org/getpro/habr/post_images/55e/4c7/551/55e4c75510c933abb382390fbd9501c6.jpg)
Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!
Содержание:
- Параметры для удобного просмотра лога
- Вывод актуальных изменений в файл
- Просмотр изменений в определённых строках файла
- Просмотр ещё не влитых в родительскую ветку изменений
- Извлечение файла из другой ветки
- Пара слов о ребейзе
- Сохранение структуры ветки после локального мержа
- Исправление последнего коммита вместо создания нового
- Три состояния в Git и переключение между ними
- Мягкая отмена коммитов
- Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
- Игнорирование пробелов
- Добавление определённых изменений из файла
- Поиск и удаление старых веток
- Откладывание изменений определённых файлов
- Хорошие примечания к коммиту
- Автодополнения команд Git
- Создание алиасов для часто используемых команд
- Быстрый поиск плохого коммита
+146
Балансировка MySQL
2 мин
20KЭто краткая заметка как настроить отказоустойчевый кластер с балансировкой нагрузки из 2 MySQL серверов. Исходные данные 2 свежеустановленных MySQL сервера. Необходимо настроить работу таким образом, что бы в нормальной ситуации запросы балансируются между MySQL серверами, в случае выхода из строя одного из MySQL серверов все запросы идут ко второму.
+5
36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql
5 мин
115KСложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.
Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.
У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.
У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
+81
Повышение скорости работы SQL-запросов
2 мин
12KСразу оговорюсь, запросы в примерах – Transact SQL, он мне как-то роднее =)
Но принципы, в общем-то, должны работать везде.
Статья не претендует на новизну, и тем более, на полноту. Я лишь попытался вспомнить часто встречающиеся ошибки или недочеты в запросах, которые приводят к медленной работе с БД.
Поиск показал, что статья частично пересекается с этим топиком, но не во всем =)
Но принципы, в общем-то, должны работать везде.
Статья не претендует на новизну, и тем более, на полноту. Я лишь попытался вспомнить часто встречающиеся ошибки или недочеты в запросах, которые приводят к медленной работе с БД.
Поиск показал, что статья частично пересекается с этим топиком, но не во всем =)
+7
Контроллер Wi-Fi точек доступа на Mikrotik
5 мин
197KТуториал
Введение
В последней версии операционной системы Mikrotik RouterOS под номером 6.11 была добавлена экспериментальная функция, позволяющая использовать роутер на этой платформе в качестве контроллера Wi-Fi точек доступа. К сожалению, так как данный функционал только что появился и находится в статусе бэта, информация о нём ограничевается довольно скучной статьёй на в Wiki-справочнике Mikrotik'а. Пошаговой инструкции по настройке мне найти не удалось, поэтому, решено было попытаться всё настроить методом научного тыка. В данном посте я рассматриваю простую настройку контроллера (не углубляясь в дебри настроек, коих очень много) обеспечивающую следующую конфигурацию (по сути, аналогичную той, что была бы настроена на простом SOHO-роутере уровня D-Link DIR-620 с родной прошивкой, и используемую в домашних условиях):
- Два Wi-Fi роутера Mikrotik RouterBoard
- Routerboard RB951G-2HnD — основной, является контроллером Wi-Fi, точкой доступа, маршрутизатором, DHCP- и DNS-сервером. Далее буду именовать его контроллером
- Routerboard RB951Ui-2HnD — дополнительный, является только точкой доступа Wi-Fi и свитчём на 3 порта (POE in и out порты не включены в свитч и зарезервированы на будущее). Далее буду именовать его точкой доступа или точкой
- WPA/WPA2-PSK аутентификация с AES-шифрованием
- Строго определённый канал, с шириной 20МГц
- Единственный SSID, не скрытый
- Клиенты не изолированны друг от друга и проводной сети (действительно, зачем это дома?)
Заинтересовавшимся, предлагаю продолжить чтение под катом. Внимание, трафик!
+13
Информация
- В рейтинге
- Не участвует
- Откуда
- Тюменская обл. и Ханты-Мансийский АО, Россия
- Зарегистрирован
- Активность