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

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

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

Разработка приложений в VK mini apps

Время на прочтение8 мин
Количество просмотров50K
Почему надо смотреть в сторону разработки приложений для работы в VK? У меня за спиной много лет фронтенд-разработки для массовых сервисов, и то, что сейчас предлагает разработчику социальная сеть «ВКонтакте» — быстрый и эффективный способ построить еще один канал коммуникации с действительно большой аудиторией. Ниже расскажу, в чем идея VK mini apps, какие технологии использовать при разработке приложения и на что стоит обратить внимание.

image

Первоначальная публикация статьи в блоге Mail.ru Cloud Solutions: https://mcs.mail.ru/blog/razrabotka-prilozhenij-v-vk-mini-apps

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии3

REST API на Laravel в 100 строк кода

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

inb4: копипаста из документации


В гайде упор на быстрое развертывание минимального набора для полноценной разработки API в соответствии с best practice, взятыми из документации Laravel 5.7, собранными в одном месте. Писал для себя и коллег как шпаргалку, надеюсь пригодится кому-нибудь еще.

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

Указатели в Python: в чём суть?

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

Если вы когда-нибудь работали с такими низкоуровневыми языками, как С или С++, то наверняка слышали про указатели. Они позволяют сильно повышать эффективность разных кусков кода. Но также они могут запутывать новичков — и даже опытных разработчиков — и приводить к багам управления памятью. А есть ли указатели в Python, можно их как-то эмулировать?

Указатели широко применяются в С и С++. По сути, это переменные, которые содержат адреса памяти, по которым находятся другие переменные. Чтобы освежить знания об указателях, почитайте этот обзор.

Благодаря этой статье вы лучше поймёте модель объектов в Python и узнаете, почему в этом языке на самом деле не существуют указатели. На случай, если вам понадобится сымитировать поведение указателей, вы научитесь эмулировать их без сопутствующего кошмара управления памятью.
Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии28

Замыкания в JavaScript для начинающих

Время на прочтение8 мин
Количество просмотров87K
Замыкания — это одна из фундаментальных концепций JavaScript, вызывающая сложности у многих новичков, знать и понимать которую должен каждый JS-программист. Хорошо разобравшись с замыканиями, вы сможете писать более качественный, эффективный и чистый код. А это, в свою очередь, будет способствовать вашему профессиональному росту.

Материал, перевод которого мы публикуем сегодня, посвящён рассказу о внутренних механизмах замыканий и о том, как они работают в JavaScript-программах.

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии54

Разработка прогрессивного веб-приложения Nothing за 15 минут

Время на прочтение5 мин
Количество просмотров14K
В Google Play есть одно приложение, разработанное Chilango Lab, у которого больше миллиона загрузок и довольно высокий рейтинг. Называется оно Nothing, что можно перевести как «Ничто», и замечательно оно тем, что не делает абсолютно ничего. В нём, правда, спрятана приятная пасхалка, но это не меняет дела. Если проанализировать это приложение, то окажется, что его размер — 14 Мб, при установке оно занимает 19,24 Мб.


Автор материала, перевод которого мы сегодня публикуем, говорит, что глядя на это приложение, он задался вопросом о том, можно ли переписать его так, чтобы оно занимало меньше места.

Ему это удалось. А именно, он воссоздал функционал Nothing, используя HTML, CSS и JavaScript, оформив его в виде прогрессивного веб-приложения (PWA, Progressive Web App). Оно работает без подключения к интернету, вызывать его можно, как и обычное приложение, с главного экрана. Основная разница между обычным Android-приложением и его PWA-копией заключается в размерах. Первое, напомним, занимает на устройстве 19,24 Мб. Второе — 205 Кб.
Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии8

Делаем «умный» контроллер для кондиционера на ESP8266

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

Задача


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

  • Из веб-интерфейса (у меня это Home Assistant, крутящийся на отдельном Raspberry Pi, но в идеале хочется простого подключения к любой системе);
  • Голосом (Google Assistant подойдёт, потом подумаем об Алисе);
  • Скриптами;
  • Дёшево...

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

JavaScript 2016, а можно попроще?

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

Последние полгода много пишут о неоправданной сложности клиентского JavaScript. Недавняя статья How it feels to learn JavaScript in 2016 и ее перевод на хабре вызвали много внимания, критика во многом справедливая, но...


Усложнять просто, упрощать сложно. (Один из законов Мерфи)


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


Как пример используется приложение для работы с коллекцией фильмов. Фильмы отображаются в списке с постраничной выборкой, поиском, сортировкой, редактированием и удалением.


Использованный стек: create-react-app как сборщик для клиента, React, bootstrap, API с json-server или json-заглушки.



Работающее демо здесь: Movies List.

Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии135

Textolite — система управления статическим сайтом

Время на прочтение2 мин
Количество просмотров41K
В последнее время в сети все чаще стали появляться обычные статические сайты, что не может не радовать. Неповоротливость некоторых популярных CMS только растет, при этом довольно часто CMS вообще не нужна. Статические сайты удобны со всех сторон, в сравнении с динамическими одни только преимущества. Такие сайты удобно разрабатывать, удобно использовать, приятно посещать, но неудобно обновлять. Решением этой проблемы может стать система Textolite, о которой я хотел бы рассказать подробнее.
Читать дальше →
Всего голосов 35: ↑22 и ↓13+9
Комментарии38

Создание веб-сайта. Курс молодого бойца

Время на прочтение24 мин
Количество просмотров815K
Как-то меня попросили провести небольшой семинар в лицее, где я когда-то учился, по созданию веб-сайта. В процессе написания речи я подумал, что она может вылиться в материал, который, возможно, будет полезен многим начинающим в области веб-дизайна, вёрстки веб-страниц и пр. Я не претендую на истину в первой инстанции и всё изложенное носит чисто личностный взгляд на работу с дизайном и кодом. Статья даёт поверхностный взгляд на понятия и средства, которые, на мой взгляд, могут стать неплохим стартом для того, кто готов идти дальше.
Читать дальше →
Всего голосов 86: ↑77 и ↓9+68
Комментарии46

«Hello, (real) world!» на php в 2017 году

Время на прочтение8 мин
Количество просмотров76K
Вы наверняка думаете, что писать на php — это просто. И «hello, world» выглядит примерно так так:

<?php
echo 'Hello, world!';

Конечно, чего еще ожидать от языка с низким порогом входа. Ну да, именно так и было раньше. Много лет назад. Но теперь, в 2017 году никто так уже не делает. Давайте рассмотрим, почему, и попробуем построить наше более реалистичное hello-world приложение по шагам, а их, скажу сразу, получилось не мало.

Читать дальше →
Всего голосов 347: ↑260 и ↓87+173
Комментарии571

Умер ли MVC для фронтенда?

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

В этой статье хочу поделиться переводом интересных размышлений на тему прошлого и настоящего в архитектуре фронтенда.

В то время как все больше и больше фронтенд-разработчиков перенимают подходы с однонаправленной архитектурой, возникает вопрос — есть ли будущее у классического MVC? Чтобы понять, как мы дошли до такого вопроса, давайте немного проанализируем эволюцию архитектуры фронтенда.
Читать дальше →
Всего голосов 57: ↑46 и ↓11+35
Комментарии149

Пошаговая инструкция по реализации загрузки файлов на сервер без перезагрузки страницы на PHP + Javascript

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

Проблема


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


Читать дальше →
Всего голосов 22: ↑9 и ↓13-4
Комментарии7

Шаблоны проектирования PHP. Часть 1. Порождающие

Время на прочтение13 мин
Количество просмотров231K
Тема заезженная до дыр, не спорю… Вероятно, для опытных разработчиков моя статья будет мало, чем полезна. Я бы рекомендовал её к прочтению тем, кто только начал осознавать, что его коду чего-то не хватает, и что он созрел для вникания в это далёкое понятие – «паттерны». По себе помню, что довольно долгое время я путался в шаблонах, иногда даже не понимая, чем один отличается от другого. Именно этот факт стал основой для моей статьи. Примеры в ней не будут реальными. Они будут абстрактными и максимально простыми. Однако я постараюсь все примеры держать в едином контексте, чтобы можно было наглядно видеть отличия их использования в одной и той же ситуации. Я не буду нагружать классы лишним функционалом, чтобы можно было понять, какая именно часть кода имеет непосредственное отношение к шаблону. Главными героями примеров станут Factory (фабрика) и Product (продукт, производимый этой фабрикой). Возьмём это отношение за отправную точку. Возможно, в некоторых примерах это будет не очень уместно, но зато очень наглядно…

Статья будет разбита на несколько частей. В каждой я буду рассказывать о новом типе шаблонов проектирования. Всем, кого эта тема может заинтересовать, прошу под кат.
Меня заинтересовала...
Всего голосов 61: ↑43 и ↓18+25
Комментарии83

Inversion of Control: Методы реализации с примерами на PHP

Время на прочтение8 мин
Количество просмотров50K
О боже, ещё один пост о Inversion of Control


Каждый более-менее опытный программист встречал в своей практике словосочетание Инверсия управления (Inversion of Control). Но зачастую не все до конца понимают, что оно значит, не говоря уже о том, как правильно это реализовать. Надеюсь, пост будет полезен тем, кто начинает знакомится с инверсией управления и несколько запутался.

Читать дальше →
Всего голосов 34: ↑29 и ↓5+24
Комментарии32

Полиморфизм для начинающих

Время на прочтение7 мин
Количество просмотров955K
Полиморфизм — одна из трех основных парадигм ООП. Если говорить кратко, полиморфизм — это способность обьекта использовать методы производного класса, который не существует на момент создания базового. Для тех, кто не особо сведущ в ООП, это, наверно, звучит сложно. Поэтому рассмотрим применение полиморфизма на примере.
Читать дальше →
Всего голосов 132: ↑91 и ↓41+50
Комментарии131

Ловля интернетов в глухой деревне с помощью 3G антенны

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

Не так давно я задался целью обеспечить интернетом жену, отдыхающую все лето с ребенком в деревне. Даже ответственно озаботился покупкой сим-карты для ее любимого айпадика (раньше как-то обходились wi-fi). Каково же было мое разочарование, когда по приезду в деревню я обнаружил почти полное отсутствие сигнала сотовой сети что на планшете, что на мобильных телефонах… Понятно — зря выкинул деньги на симку. Неделя моего пребывания в деревне ознаменовалась лазаньем по чердакам, крышам, просто по участку, уткнувшись в смартфон в надежде увидеть хотя бы GPRS. Все тщетно… Отбыл в Москву, мои остались в этой глухомани отдыхать от радиоволн.

По дороге домой обдумывал план решения проблемы. Необходимость в интернете у жены диктовалась даже не сколько развлекательными целями, сколько возможностью бесплатно переписываться по Viber и регулярно снабжать меня фотками дочурки (надо сказать, писать sms и mms из Тверской области в Москву недешево). Так же давало надежду знание того, что в другой деревне, в паре километров, интернет работал, причем довольно устойчиво и с почти полным индикатором сигнала. Значит где-то рядом с этой деревней есть базовая станция, снабжающая деревню устойчивым 3G сигналом. Судя по всему, складки местности или иные преграды мешают сигналу достигать нашего участка.

Решение придумалось конечно не новое и не оригинальное — и ежу понятно, что нужно вооружаться направленной 3G антенной. Тем более, у меня уже имелся некоторый опыт эксплуатации направленных антенн для ловли 4G в Москве. В голове, где-то на пыльных задворках, лежали воспоминания о курсе антенно-фидерных устройств, который нам целый семестр читали в институте. И благодаря этим знаниям я прекрасно понимал, что собирать такую антенну самостоятельно будет довольно трудозатратно и долго, решил покупать готовую.
Читать дальше →
Всего голосов 80: ↑73 и ↓7+66
Комментарии45

MySQL Performance real life Tips and Tricks

Время на прочтение9 мин
Количество просмотров37K
Пообещал вчера написать статью о реальных случаях оптимизации БД MySQL.
Пришлось сегодня вставать утром пораньше чтобы воплотить обещанное в жизнь.
Централизованное управление мыслями поддерживать еще сложно, поэтому не судите строго за казусы и ляпсусы в моей статье.

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

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

Читать дальше →
Всего голосов 147: ↑141 и ↓6+135
Комментарии93

Готовимся к собеседованию по PHP: ключевое слово «static»

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

image

Попробуем разобрать «по косточкам» один из таких вопросов — что значит слово «static» в PHP и зачем оно применяется?
Подробности, цитаты из мануала, стандартов и личного опыта - под катом
Всего голосов 54: ↑41 и ↓13+28
Комментарии70

PHPExcel и большие файлы

Время на прочтение4 мин
Количество просмотров99K
PHPExcel — отличная библиотека с огромным функционалом по работе с форматами xls, xlsx. Можно считывать, записывать, менять форматирование, задавать формулы, а из xlsx можно и картинки вытаскивать.

На хабре уже был пост про эту библиотеку - Универсальное чтение ячеек в PHPExcel. Я остановлюсь только лишь на главном минусе PHPExcel — вечно памяти не хватает, все время сыпятся ошибки «Fatal error: Out of memory». Этот пост о том, как это обойти.

Читать дальше →
Всего голосов 33: ↑25 и ↓8+17
Комментарии23

Обещания JavaScript

Время на прочтение19 мин
Количество просмотров204K
Всем привет, и ещё раз всех с прошедшими праздниками. Трудовые будни набирают обороты и вместе с ними растёт информационный голод мучающий нас. Мир разработки переднего конца не дремлет и готовит нам много сюрпризов в наступившем году, и уж поверьте мне, скучно не будет ни кому. Одна из новых особенностей которые нам готовят разработчики браузеров совместно с группами разработчиков пишущих спецификации — JavaScript Promises(далее в переводе — Обещания, прошу сильно не бить) — полюбившийся многим шаблон написания асинхронного кода обзаводится нативной поддержкой. Что же такое обещания и с чем их едят можно прочесть в нижеследующем переводе(слегка вольном) замечательной статьи Джейка Арчибальда.

Подробности
Всего голосов 83: ↑76 и ↓7+69
Комментарии39
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Петрозаводск, Карелия, Россия
Дата рождения
Зарегистрирован
Активность