Как стать автором
Обновить
0
Кирсанов Анатолий @tkirsan4ikread⁠-⁠only

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

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

Опыт выявления одного бага или как не надо оформлять свой код

Время на прочтение6 мин
Количество просмотров17K
Сразу оговорю, что ничего инновационного в статье не предлагается. Я просто описываю один небольшой случай работы с чужим кодом. Опытные разработчики, пожалуй, улыбнутся, ибо наверняка с подобным сталкивались и сами, а может и еще хуже. Тех же, для кого это всё в новинку, просьба взять на заметку, как не надо оформлять свой код, уж особенно если речь идет о публичном плагине. В статье далее описывается работа с посторонним плагином для wordpress. После моих “приключений” мне очень не хочется никаким образом упоминать название плагина, поэтому в кусках исходного кода я подменил название переменных, функций, чтобы максимально исключить возможность отсылки к плагину.
Читать дальше →
Всего голосов 21: ↑16 и ↓5+11
Комментарии30

Классификация на гуманитариев и технарей по комментариям в VK

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

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


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

Переписать базу сообщений ВКонтакте с нуля и выжить

Время на прочтение9 мин
Количество просмотров62K
Наши пользователи пишут друг другу сообщения, не зная усталости.

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

При таком объёме данных критически важно, чтобы логика хранения и доступа к ним была построена оптимально. Иначе в один не такой уж и прекрасный момент может выясниться, что скоро всё пойдёт не так.

Для нас этот момент наступил полтора года назад. Как мы к этому пришли и что получилось в итоге — рассказываем по порядку.
Читать дальше →
Всего голосов 97: ↑94 и ↓3+91
Комментарии91

Ubuntu + XRDP + x11RDP терминальный сервер, с поддержкой звука, для серфинга в интернете — пошаговое руководство

Время на прочтение10 мин
Количество просмотров125K
Особенно нетерпеливых отсылаю сразу в конец статьи где будет ссылка на готовый .deb-пакет для установки.

А для всех остальных…

Что это такое и для чего это нужно


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

История номер один. (основано на реальных событиях)


Предположим бухгалтеру, в конце отчетного периода, когда все «на ушах», на
эл.почту приходит страшное письмо от «Налоговой Полиции» в котором говорится о том, что её фирма попала под жуткую проверку и ей следует немедленно ознакомиться с официальным документом который находится в прикреплённом к письму файле.
В панике бухгалтер пытается открыть прикреплённый файл и… все компьютеры фирмы подключенные в данный момент к внутренней локальной сети получают порцию вируса щифровальщика который парализует работу фирмы не не один день.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии43

Инструменты для команды удалённых разработчиков

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


Сегодня все чаще говорят о возможности удаленной работы. Тут и там большие компании анонсируют повсеместный исход офисного и не только планктона из корпоративных теплиц. Разработчики – первые, кого вспоминают в этот контексте. Работая удалённым разработчиком, вы зачастую не можете встретиться лицом к лицу с клиентом, лично представить свой проект, присесть за стол к коллеге, чтобы вместе решить какую-то проблему. Из-за этого у некоторых может возникнуть впечатление, что у удалённой работы есть ряд серьёзных недостатков. На мой взгляд, и по мнению десятков тысяч удаленных разработчиков это ложное впечатление. Удалённые разработчики в целом счастливее, работают усерднее, и быстро осваивают подходящие инструменты для совместной работы. Конечно, удалённая работа — вещь непростая. Ведь нас с детства приучают к тому, что нам нужен коллектив, и что общаться нужно лицом к лицу. Уходя из офиса на удалёнку, приходится учиться пользоваться инструментами, компенсирующими географическую распределённость команды. Под катом — подборка инструментов, которая поможет вам эффективно взаимодействовать с коллегами в других городах и странах. Безусловно, это не весь инструментарий. Было бы любопытно прочесть о ваших находках в комментариях к данной статье.
Всего голосов 41: ↑37 и ↓4+33
Комментарии16

Идеальный каталог, набросок архитектуры

Время на прочтение10 мин
Количество просмотров8.4K
Подвернулась мне задачка разработать универсальный каталог товаров и услуг, по совместительству каталог предприятий, документов и чего угодно ещё. В работе этот «опыт» не пригодился, а идея хорошая, по-моему скромному мнению :) Хочется поделиться, и послушать критику.

Каталог подразумевает упорядоченность — иерархию, подразумевает непосредственно хранение информации, и конечно поиск, наверное аналитику… что-то ещё? Больше ничего в голову не приходит.

Теперь по пунктам.
Читать дальше →
Всего голосов 12: ↑7 и ↓5+2
Комментарии35

Uber — причины перехода с Postgres на MySQL

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


В конце июля 2016 года в корпоративном блоге Uber появилась поистине историческая статья о причинах перехода компании с PostgreSQL на MySQL. С тех пор в жарких обсуждениях этого материала было сломано немало копий, аргументы Uber были тщательно препарированы, компанию обвинили в предвзятости, технической неграмотности, неспособности эффективно взаимодействовать с сообществом и других смертных грехах, при этом по горячим следам в Postgres было внесено несколько изменений, призванных решить некоторые из описанных проблем. Список последствий на этом не заканчивается, и его можно продолжать еще очень долго.


Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

Читать дальше →
Всего голосов 112: ↑110 и ↓2+108
Комментарии58

Vysor — удобный инструмент для тестирования

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

Привет, Хабр! В этой статье я хочу рассказать об удобном инструменте для работы QA-инженера. Это Vysor — расширение, доступное в интернет-магазине Google, которое позволяет делать скриншоты и записывает видео с мобильных устройств.

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

Генерация документов в doc, excel, pdf и других форматах на сервере

Время на прочтение3 мин
Количество просмотров41K
Выгрузка отчетов в различных форматах — типовая задача для многих проектов. И сейчас есть немало инструментов для этого. Среди них есть интересный вариант, который применяется, как мне кажется, не часто, но он однозначно стоит внимания. Потому что позволяет получить документ в нужном формате буквально одной командой. О нем и расскажу.

image

Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии20

Hack.me: Ещё одна площадка для оттачивания навыков в области ИБ

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


Всем доброго времени суток, сегодня не будет VulnHub'a. Сегодня рассмотрим его альтернативу hack.me. На котором содержится не мало интересных площадок для взлома, на различные темы. В этой статье рассмотрим BeachResort. Как пишет автор, это не типичный CTF,
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии11

Оптимизация одного запроса с GROUP BY в PostgreSQL

Время на прочтение6 мин
Количество просмотров22K
image

Сразу скажу, что в этой статье нет универсального совета на все случаи, а рассмотрен случай оптимизации лишь небольшого класса запросов. Тем не менее такие запросы могут встречаться во многих проектах.
Ускоряем запрос с GROUP BY в 10 раз
Всего голосов 29: ↑28 и ↓1+27
Комментарии37

История моего стартапа: 500000 пользователей за 5 дней на стодолларовом сервере

Время на прочтение11 мин
Количество просмотров35K
Похоже, все в мире стартапов согласны с тем, что первые версии приложений должны представлять собой минимально жизнеспособный продукт (MVP, Minimal Viable Product), создавая который можно не особо заботиться о его масштабировании с технической точки зрения. Мне много раз доводилось слышать о том, что самое главное в подобных делах – поскорее выпустить нечто работающее. И, до тех пор, пока бизнес-модель нормально функционирует в условиях роста клиентской базы – всё нормально. А тратить время и деньги на то, чтобы сделать систему, которая сможет выдержать внезапный наплыв пользователей, не стоит. Беспокоиться нужно лишь о проверке предположений, об оценке рынка и о раскрутке бизнеса. Масштабируемость – это то, что можно отложить на потом. К несчастью, такая вот слепая вера в шаблонные идеи уже не раз приводила к оглушительным провалам. Pokémon GO, и, в частности, связанные с этим проектом приложения, служат напоминанием об этом.


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

Календарные функции в MySQL и MariaDB

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

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

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

Три минуты на настройку WiFi-авторизации по СМС

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


Есть у меня хороший знакомый, владелец весьма уютного и популярного кафе в Суздале, которое недавно пережило реновацию и расширение. Денег в интерьеры вложено было много, дело наконец дошло и до Wi-Fi. На фоне вентилирования этого дела, мой знакомый пошел все разузнавать у всех по кругу и схлестнулся в дискуссии со своим родственником (юристом по профессии), на тему волен ли он делать, что захочет в своем «кафе с претензией на ресторан», если это не вредит гостям – конкретно, речь пошла о едином Wi-Fi доступе гостям во всех залах и на веранде ресторана к будущему лету.

На примере недавно обвайфаенного офиса в московской компании, я собирался ему рекомендовать Edimax PRO, так как по сей день проблем с этим оборудованием не возникло, а ценник приемлемый. После дискуссии с родственником юристом, мой знакомый вернулся ко мне с репликой, что мол будет без вариантов заказывать более широкий канал вместе с оборудованием у местного телекома, который и прикроет его от всех потенциальных претензий надзирающих органов «если что». Ему родственник якобы подробно объяснил, что теперь обязана быть какая-то хитрая авторизация и учет подключившихся гостей, что может дать только телеком с его собственным оборудованием.

В результате я сказал, своему мегаресторатору «обожди, ничего не делай пару дней» и занялся изучением этого вопроса с двух сторон: с точки зрения чтения законодательной базы и того, что мы можем «сварить» из имеющегося Эдимакса, не подключая дорогие «магнетические сферы» в лице местного ОПСа.

Делюсь результатами моей работы, которая вылилась в простом, на мой взгляд, способе авторизации WiFi пользователей по СМС.
Всего голосов 16: ↑12 и ↓4+8
Комментарии31

Простые и удобные уведомления

Время на прочтение2 мин
Количество просмотров23K
Привет! Достаточно часто разработчики и системные администраторы сталкиваются с необходимостью присылать уведомления, например об ошибках или отчёт о работе таска, а у кого-то это финансовый отчёт за день. Тут всё ограничено фантазией и поставленными задачами. Каждый сам выбирает удобный инструмент или пишет что-то своё.

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

Определил требования:

  • бесплатно (плату за трафик не учитываем)
  • работает на большинстве популярных платформ
  • групповые и индивидуальные уведомления
  • простая реализация отправки

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

Как я избегал выгорания, проработав программистом более трёх десятков лет

Время на прочтение6 мин
Количество просмотров83K
Прочитав множество постов о нынешнем «выгорании» программистов, я начал думать, как же я сумел сохранить интерес к этой профессии даже после столь долгой карьеры — с 1981 года (!). Почему интерес к коду у меня ещё не угас?

Конечно, я частично объяснил это в моём посте «Да, я в мои 56 всё ещё хочу делать это», получившем известность почти три года назад. Но тот пост был о стороне жизни профессионального программиста, связанной с самим процессом программирования; здесь же речь пойдёт не о самом написании кода, а о том, как я всё ещё выдерживаю «программистское бытие». Что же это за работа, которая захватывает так, что утром ждёшь не дождёшься открыть текстовый редактор или IDE или же испытываешь благоговейный ужас от мысли отправить свой зад в офис?

Оглядываясь назад на мои места работы — те, которые мне нравились, те, которые я ненавидел, и те, с которыми просто было можно жить, — я думаю, в чём же различие между ними? Что я делал такого, что позволило мне так долго идти по этому пути?
Читать дальше →
Всего голосов 96: ↑94 и ↓2+92
Комментарии121

Как я повысил свою продуктивность или волшебный пинок для умных и ленивых

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


Бывает, что проведёшь день на работе, вроде ничего не сделал, а все равно устал. Виной этому, как правило, рутина. Куча мелких срочных, иногда не очень срочных, но все равно важных, поручений и повседневных обязанностей. Из-за этих дел не успеваешь делать какие-то другие, более важные вещи. Знакомая ситуация?

Я тоже столкнулся с этой проблемой, но все попытки тайм менджмента практически не увенчались успехом. Не приживается у меня тайм менеджмент, но я все-таки нашел альтернативный выход.
Читать дальше →
Всего голосов 25: ↑14 и ↓11+3
Комментарии19

Что такое шаблоны проектирования?

Время на прочтение11 мин
Количество просмотров79K
Вы когда-либо задавались вопросом, что такое шаблоны проектирования? В этой статье будет разъяснено, почему шаблоны проектирования имеют существенное значение, и будет приведено несколько примеров на PHP, поясняющих, когда и где их следует использовать.

Шаблоны проектирования — это допускающие многократное использование оптимизированные решения проблем программирования, с которыми мы сталкиваемся каждый день. Шаблон проектирования — это не класс или библиотека, которые мы можем просто вставить в нашу систему. Он — много больше. Это — некоторый шаблон, который должен быть реализован в надлежащей ситуации. Он не зависит от языка. Хороший шаблон проектирования должен быть таким, чтобы его можно было использовать с большинством языков (если не со всеми) в зависимости от характеристик языка. Чрезвычайно важно то, что любой шаблон проектирования необходимо использовать очень осторожно — если он применён в ненадлежащем месте, то его действие может быть разрушительным и породить много проблем для вас. Однако применённый в нужном месте в нужное время он может стать вашим спасителем.
Читать дальше →
Всего голосов 35: ↑22 и ↓13+9
Комментарии75

Учебник AngularJS: Всеобъемлющее руководство, часть 2

Время на прочтение22 мин
Количество просмотров191K
Часть 1

4.1 $rootScope


$rootScope не сильно отличается от $scope, просто это объект $scope самого верхнего уровня, от которого происходят все остальные области видимости. Когда Angular начинает создание вашего приложение, он создаёт объект $rootScope, и все привязки и логика приложения создают объекты $scope, являющиеся наследниками $rootScope.

Обычно мы не используем $rootScope, но с его помощью можно обеспечить передачу данных между разными областями видимости.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии23

Учебник AngularJS: Всеобъемлющее руководство, часть 1

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

Содержание


1 Введение в AngularJS
2 Engineering concepts in JavaScript frameworks
3 Modules
4 Understanding $scope
5 Controllers
6 Services and Factories
7 Templating with the Angular core
8 Directives (Core)
9 Directives (Custom)
10 Filters (Core)
11 Filters (Custom)
12 Dynamic routing with $routeProvider
13 Form Validation
14 Server communication with $http and $resource

1 Введение в AngularJS


Angular – MVW-фреймворк для разработки качественных клиентских веб-приложений на JavaScript. Он создан и поддерживается в Google и предлагает взглянуть на будущее веба, на то, какие новые возможности и стандарты он готовит для нас.

MVW означает Model-View-Whatever (модель – вид – что угодно), то есть гибкость в выборе шаблонов проектирования при разработке приложений. Мы можем выбрать модели MVC (Model-View-Controller) или MVVM (Model-View-ViewModel).

Этот обучающий материал задумывался как отправная точка для изучения AngularJS, его концепций и API, чтобы помочь вам создавать великолепные веб-приложения современным способом.
Читать дальше →
Всего голосов 44: ↑38 и ↓6+32
Комментарии29
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Тамбов, Тамбовская обл., Россия
Дата рождения
Зарегистрирован
Активность