Search
Write a publication
Pull to refresh
14
0
Мухаммад @muhammad_97

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

Send message

NodeJS фреймворк с синтаксисом Laravel

 (и без лапши в коде)

Reading time3 min
Views33K

Пробежавшись по Хабру с удивлением заметил, что этот фреймворк упомянут только в нескольких дайджестах, хотя по моему мнению заслуживает большего внимания. Ниже будет много кода и совсем немного комментариев к нему. И да, друзья! Это моя первая статья на хабре, просьба сильно не быть и не ругать.

Читать дальше →

Продвинутые методики внутреннего SEO для электронной коммерции

Reading time13 min
Views21K


В среде IT-специалистов существуют различные мнения относительно SEO. Кто-то относится к этому отрицательно, а кто-то считает хорошим инструментом. Но негативное отношение к SEO обычно складывается из-за неумелого его применения. При грамотном и уместном использовании это средство продвижения может принести немало выгод, не вызывая недовольства пользователей. Одному из аспектов SEO — его внутреннему применению — было посвящено выступление Артёма Гидина, руководителя SEO-подразделения компании Web-Promo, на прошедшей осенью киевской партнёрской конференции «1С-Битрикс».

Давайте поговорим, почему стоит обращаться к SEO-продвижению. SEO — это направление интернет-маркетинга, направленное на продвижение продуктов, у которых уже есть спрос. То есть SEO — это не тот инструмент, который работает на формирование спроса. Если у вас уже есть продающиеся товары или услуги, которые интересны людям и о которых уже знают, то SEO — это именно то направление, которым стоит заниматься. Для многих компаний SEO дает львиную долю всего трафика, который приходит на сайт. И это одна из важнейших причин, почему нужно уделять внимание продвижению сайтов в поисковых системах.
Читать дальше →

Опрос айтишников. На «вы» или на «ты»?

Reading time1 min
Views29K
Не секрет, что в подавляющем большинстве контор, где работает много программистов, админов и т.д., все общаются на «ты», причем зачастую независимо от должности и возраста.

При этом при общении на сайтах в интернете (facebook, habr и др.), даже на сугубо «программистские» темы, стало довольно много «выкания». Замечу, что в нулевых в интернете все были строго на «ты», без вариантов, и постепенно это сходит на нет.

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

Предлагаю небольшой опрос-замер на эту тему. Через пару лет повторим, чтобы увидеть тенденцию.

Естественно, не во всех языках есть это различие. В английском языке все на «you», например. Хотя и там ранше было слово thou, которое до сих пор можно встретить у Шекспира или в Библии. (Кстати, аналогом «you have» будет «thou hast», почти как «du hast» у Rammstein).
Читать дальше →

9 интересных сервисов для веб-дизайнера. Специальная подборка

Reading time3 min
Views34K
В современном веб-дизайне существует достаточно много инструментов для web-дизайна. Это и классика — графические редакторы Photoshop и Sketch, и программы, совмещающие одновременно дизайн и верстку, такие как Macaw и Adobe Muse. И, как мы считаем, будущее web-дизайна — платформы для визуального дизайна сайтов в браузере, одним из примеров которых является Pixli.

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

Ниже, мы отобрали перечень из 9 весьма интересных и полезных ресурсов, к которым веб-дизайнеры обращаются и используют довольно часто:
Читать дальше →

Web PUSH Notifications быстро и просто

Reading time17 min
Views364K

Добрый день. В этой небольшой заметке я хочу рассказать как быстро и просто настроить push-уведомления на вашем сайте. Эта статья ни в коем случае не претендует на звание исчерпывающего руководства, но, я надеюсь, что она даст точку старта для дальнейшего изучения.


Информации по этой теме в интернете полно, но она фрагментирована, разбросана по разным ресурсам и перемешена с уведомлениями для мобильных устройств с примерами на Java, C++ и Python. Нас же, как веб-разработчиков, интересует JavaScript. В этой статье я постараюсь саккумулировать всю необходимую и полезную информацию.


Web PUSH Notifications


Я думаю, вы уже знаете что такое push-уведомления, но я всё же напишу коротко о главном.


Пользователь, заходя на сайт, вытягивает (pull) с него данные. Это удобно и безопасно, но с развитием интернет ресурсов, появилась необходимость оперативно доставлять информацию пользователям не дожидаясь пока те сами сделают запрос. Так и появилась технология принудительной доставки (push) данных с сервера клиенту.

Читать дальше →

10 мифов о Docker, которые пугают разработчиков

Reading time10 min
Views46K

Источник: 'Nova typis transacta navigatio' (Linz: s.n., 1621), p.12 (British Library, G.7237).


Часто во время разговоров о Docker я слышу мнения, с которыми не совсем согласен.


«Docker по своей сути предназначен для крупных компаний»

«под OSx у него экспериментальная поддержка, под Windows работает еле-еле»

«Я не уверен, что смогу быстро развернуть его локально»

… и еще много всякого.

В этих утверждениях есть доля истины (см. ниже мифы 3 и 5), но она мала, и по большей части реальная картина получается искаженной.


А есть еще и наполненные жаргоном статьи о том, как при использовании немалого количества фреймворков обрабатывать 10к миллионов запросов в секунду. И это с помощью всего лишь 30к контейнеров при автоматизации 5к микросервисов, размещенных на шести сотнях облачных виртуальных машин…


Что ж, нетрудно догадаться, почему Docker окружен таким количеством мифов.


К сожалению, эти мифы очень живучи. И главное их достижение заключается в том, что они пугают разработчиков и не дают им решиться на использование Docker.


Давайте поговорим о самых распространенных мифах – тех, с которыми я сталкивался и в которые верил, – и попробуем найти в них истину, а также решения, если таковые имеются.

Читать дальше →

История о том, как я парсер для дневника мастерил

Reading time3 min
Views17K

Год назад я начал писать ботов для всеми любимого Телеграма. На Питоне, конечно. И вот недавно мой сын пошёл в школу, где, как оказалось, был электронный дневник под названием МРКО. Как вы могли догадаться, самая первая мысль — сделать бота (пока для личного пользования), который смог бы присылать в Телеграм оценки, домашнее задание и комментарии. Кому интересно — прошу под кат.


Читать дальше →

Свежий KDE от разработчиков плюс стабильность Ubuntu 16.04 -> KDE Neon

Reading time3 min
Views56K

Я думаю, что никто из Linux-адептов не будет отрицать большой вклад в развитие экосистемы, который внесла Ubuntu. Да, ресурсов на многое не хватает, проекты нередко забрасываются на половине пути. Но, как мне кажется, они сумели достичь прекрасного баланса между стабильностью и свежестью пакетной базы. Какая-то очень правильная грань между выдержанностью благородной плесени у Debian и непрерывным поиском того, что отломалось при обновлении в Arch Linux. Хочется просто работать? Сидим на LTS версиях дистрибутива с дефолтными репозиториями. Нужен какой-то специфический софт? Подключаем PPA от разработчика. Поставили свежее железо, нужна поддержка в ядре, но с LTS уходить не хочется — используем LTS Enablement Stacks (HWE).

Не всем нравится дефолтная оболочка Unity, но тут к услугам пользователя все семейство Ubuntu Flavours. Я в своем выборе остановился на KDE и Kubuntu соответственно. Все было хорошо, но сидение на LTS релизах неизбежно вызывает тягу к приключениям и ломанию системы. И тогда я пошел на поиски чего-то нового.

Идеальный каталог, вариант реализации

Reading time13 min
Views9.4K
В продолжении статьи "Идеальный каталог, набросок архитектуры", я покажу на примерах как можно использовать предложенную структуру БД для хранения произвольных данных и выполнения произвольных поисков по этим данным. Скрипты лежат в репозитории — universal_data_catalog_idea.

Приглашаю под кат, тех кому интересно посмотреть на эти скрипты с авторскими комментариями.
Читать дальше →

Требования к паролям — полная чушь

Reading time7 min
Views89K
Знаете, что самое худшее в паролях (а там есть из чего выбирать)? Требования к их сложности.


«Если мы не решим проблему с паролями при моей жизни, я восстану из могилы призраком и буду вас всех преследовать».

Пусть эта клятва будет записана на скрижалях Интернета. Я не в курсе, есть ли жизнь после смерти, но рано или поздно выясню, и тогда уж держитесь — у меня грандиозные планы.

Мир буквально погряз в ужасных правилах создания паролей:

Тупые требования
Примеры плохой политики
Доска позора

Но вам все это и объяснять не нужно. Те, кто пользуется рандомными генераторами паролей, как и положено нам, гикам в последней стадии, на своей шкуре испытывают невыносимые страдания под гнетом этого режима изо дня в день.
Читать дальше →

Считаем до трёх

Reading time4 min
Views32K

Троичные вычисления


Я готовлю курс лекций по архитектуре компьютеров для студентов нашего университета, и в качестве небольшой практической разминки я бы хотел предложить студентам построить примитивный программируемый вычислитель в троичной логике. Конкретно эта статья рассказывает про базовый модуль, который будет использоваться в постройке, а именно про троичный мультиплексор. В данном тексте я не пойду дальше простейшего сумматора (и его реализации в железе), текст и так получается достаточно насыщенным. В последующих статьях я буду потихоньку рассказывать, куда меня эта кривая заведёт, так как я в самом начале авантюры.



Я выбрал сбалансированную троичную систему, в которой один трит может представлять одно из трёх значений -1, 0 или 1. Весьма подробно о ней можно почитать тут.

На любые вопросы из разряда «зачем?!» я отвечаю заранее: «Because I can».


Читать дальше →

Эволюция модульного JavaScript

Reading time20 min
Views43K


Скорее всего, когда Брендан Айк проектировал JavaScript, он не представлял, как эволюционирует его проект спустя двадцать лет. На данный момент вышло уже шесть основных спецификаций языка, и работа над его улучшением до сих пор продолжается.

Не будем лукавить: JavaScript никогда не был идеальным языком программирования. Одним из слабых мест в JS была модульность, а точнее её отсутствие. Действительно, зачем в скриптовом языке, который анимирует падающие на странице снежинки и валидирует форму, заботиться об изоляции кода и зависимостях? Ведь всё может прекрасно жить и общаться между собой в одной глобальной области — window.

С течением времени JavaScript трансформировался в язык общего назначения, так его начали использовать для построения сложных приложений в различных средах (браузер, сервер). При этом нельзя было положиться на старые подходы взаимодействия компонентов программы через глобальную область: с ростом объёма кода приложение становилось очень хрупким. Как результат для упрощения процесса разработки создавались различные реализации модульности.

Эта статья появилась в результате общения с участниками TC39 и разработчиками фреймворков, а также чтения исходных кодов, блогов и книг. Мы рассмотрим следующие подходы/форматы: Namespace, Module, Detached Dependency Definitions, Sandbox, Dependency Injection, CommonJS, AMD, UMD, Labeled Modules, YModules и ES2015 Modules. Кроме того, мы восстановим исторический контекст их появления и развития.
Читать дальше →

Создаем идеальную строку поиска

Reading time5 min
Views29K
Строка поиска состоит из совокупности текстового поля и кнопки ввода. Казалось бы, дизайна здесь даже и не нужно — в конце концов, речь идет всего лишь о двух простых элементах. Но на сайтах с большим количеством контента строка поиска зачастую оказывается тем элементом дизайна, которым посетители пользуются чаще всего. Открывая сайт с относительно сложной архитектурой, пользователи сразу же обращаются к строке поиска, чтобы попасть в пункт назначения быстро и безболезненно. И тут неожиданно оказывается, что дизайн строки имеет большое значение.



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

Уведомления в браузере и пример того, как их можно использовать с пользой

Reading time6 min
Views74K


Вероятно, вы все уже слышали про технологию «Веб-push» в составе Push API и Notifications API. Я уверен, что среди вас есть те, кто возлагает надежды на эту технологию, как на новый канал коммуникации с пользователем. И я не исключаю возможность, что данную статью будут читать основатели тех немногочисленных стартапов, которые всерьёз занялись окучиванием технологии «Веб-push» для рекламы и маркетинга. Сегодня я вам расскажу, о том как можно использовать данную технологию.
Читать дальше →

Как мы в Мосигре обрабатываем баги и косяки — разборы конкретных случаев

Reading time8 min
Views71K


Прошлый раз я писал про чужие баги. Честно будет написать теперь про наши. Они бывают трёх основных типов:

  1. Когда косякнули мы, и это реально мы.
  2. Когда виноват внешний курьер, почта или кто-то ещё — но клиент всё равно считает это косяком магазина (и, в целом, прав в этом).
  3. Когда есть брак в товаре, и виноват производитель – но клиент брал у нас, поэтому ответственность за косяк должна быть тоже на нас.

Когда-то мы думали, что достаточно уменьшить до минимума количество косяков первого типа, и всё будет отлично. Но нет, этого оказалось мало. Дело в том, что покупатель не особо разделяет в своём мировоззрении товар, продавца и доставку. И если в 6:15 утра в Иркутске в его дом стучит страшное небритое лицо с посылкой – это тоже лицо компании.

Теперь давайте расскажу с примерами, в том числе по обратной связи с Хабра.
Читать дальше →

11 шагов к хорошему интернет-магазину. Доставка

Reading time6 min
Views14K
Почти год назад я начал публиковать серию статей о том, как сделать интернет-магазин хорошим и для покупателя, и для продавца. Некоторые (хорошие) семейные обстоятельства сильно сократили мое свободное время прошлой весной, и поэтому продолжение, которое некоторые терпеливые читатели искренне ждали, появляется только сейчас. Сегодня — восьмой шаг из одиннадцати. Доставка. Один из самых главных, ибо на нем можно больно споткнуться (как буквально, так и фигурально выражаясь).

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

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

Доброе отношение приятно и котенку
Доброе отношение приятно и котенку. Фото с murlika.msk.ru
Читать дальше →

Шпаргалка для кандидата: какие вопросы задать потенциальному работодателю на собеседовании

Reading time6 min
Views396K
У каждого кандидата в конце собеседованию рекрутер обычно спрашивает, есть ли вопросы. Часто люди теряются и не находят, что спросить. И лишь по прошествии некоторого времени (часто, когда человек уже работает в компании) сами собой всплывают вопросы, о которых нужно было поинтересоваться заранее, а не брать кота в мешке и удивляться «Как я сюда попал? Куда я смотрел? Почему я об этом не подумал?». Это так называемый «эффект лестницы». Я подготовил шпаргалку, что ты, %habrauser%, не растерялся.

Общее


1. Рабочий график и можно ли его двигать?
Я люблю поспать. Но на моей прошлой работе «рабочее утро» начиналось в 7:30. Мало того, что я довольно часто не мог прийти к этому времени, я еще пол дня занимался тем, что пытался привести себя в рабочую форму. Где то до 10:00. С 10:30 до 11:30 я усердно работал. Потом был обед. А потом мне хотелось спать, а не работать, т.к. я не высыпался еще с утра. Надо ли говорить, что вместо 8 часов, на которые меня нанял работодатель, я работал в «потоке» только часа 3-4. Так что для себя нужно решить вопрос – когда я наиболее трудоспособен? И обговорить рабочий график с руководством. И еще один нюанс. Попробуйте закрепить обговоренный график в трудовом договоре или контракте (далее ТД), если работодатель идет на персональный рабочий график для Вас. Никаких устных договоренностей. Иначе Вам начнут крутить руки уже в процессе работы (как это было со мной).
Читать дальше →

Как я устроился на работу в Stack Exchange

Reading time6 min
Views12K
От переводчика
Перед вами перевод публикации из блога Haney Codes .NET. Автор блога David Haney работает на позиции Engineering Manager в Stack Overflow. Пару лет назад я уже перевел одну статью его авторства: Неразбериха с названиями должностей.

Около месяца назад я обнаружил себя разговаривающим по видеосвязи с Joel Spolsky (автор известного блога «Joel on Software», со-основатель Stack Overflow — прим. перев.). Даже сейчас кажется абсурдным писать подобное. Долгое время, на протяжении всей своей карьеры, я регулярно читал Joel Spolsky, и во многом сходился с ним во взглядах на разработку. И вдруг общаюсь лицом к лицу.

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

Что нужно знать при разработке своих CMF и CMS. Опыт длиною в 2 года

Reading time5 min
Views14K
Если вы разрабатываете сайты на PHP-фреймворках и ещё не имеете своей платформы, то наверняка о ней задумывались. Это могли быть CMF, CMS, конструктор сайтов, набор компонентов — материал подходит для любого из этих случаев. В статье поделюсь советами и примерами для тех, кто планирует создать свой инструмент, или уже находится в начале этого пути.

Что нужно знать при разработке своих CMF и CMS. Опыт длиною в 2 года

Мы не будет говорить про разработку ради фана, изучения новых технологий или дипломного проекта, если нет цели дать ему дальнейшее развитие. Мы поговорим про разработку инструментов для коммерческих проектов.
Читать дальше →

Суд, не имея доступа к интернету, поддержал блокировку РосКомСвободы в образовательных учреждениях Москвы

Reading time9 min
Views25K
image

Своим последним решением Басманный суд фактически подтвердил за Департаментом информационных технологий г.Москвы и МГТС право блокировать, что угодно и где угодно, по собственному усмотрению. При этом, черные списки сайтов могут формироваться коммерческими организациями вроде ООО “Безопасный Интернет” самостоятельно и в автоматическом режиме, без необходимости какой-либо верификации данных, проведения экспертиз и наличия законных оснований.

22 февраля 2017 года в Басманном суде состоялось первое (и по-сути последнее) слушание в первой инстанции по существу дела об образовательной блокировке сайта РосКомСвободы.

На слушание явились все Ответчики — представители Департамента информационных технологий Москвы (ДИТ), Департамента образования Москвы, МГТС, ООО “Безопасный интернет”, а также пришёл и сотрудник Роскомнадзора, чему мы, юристы Центра защиты цифровых прав, были рады, так как имели возможность задать вопросы каждому из них для установления истинных причин ограничения доступа к сайту общественной организации «РосКомСвобода» в образовательных учреждениях Москвы. Но, учитывая высокий городской статус двух ответчиков, суд так и не дал нам возможности провести полноценный гражданский процесс на условиях равенства сторон и состязательности.

Но обо всем по порядку.

Information

Rating
Does not participate
Registered
Activity