Как стать автором
Обновить
0
Бейшен @bnuriddinread⁠-⁠only

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

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

Я хочу работать в Google! Телефонное интервью (часть 3, питоноводческая)

Время на прочтение16 мин
Количество просмотров9.8K
Из комментариев к предыдущей статье кроме кучи полезной информации, обсуждения недостатков моего кода, я вынес ещё и стратегическое решение — всеми правдами и неправдами избегать программирования на C/C++ на ближайшем интервью. Сказывается отсутствие практики написания программ. Уже больше 4х лет его не трогал и питона хватало для любых статистических вычислений и визуализации данных. Но обязательно вернусь к классическим учебникам на следующей недели. Товарищи TheHorse и 0leGG застыдили меня во второй статьe, а AxisPod забил последний гвоздик в гробик моих надежд, что получится выехать на старых знаниях. Поэтому смещая акцент именно в сторону любимого Python, посмотрим на возможные задачи.
Читать дальше →
Всего голосов 48: ↑38 и ↓10+28
Комментарии44

Кроссплатформенный GUI на C# и веб-технологии

Время на прочтение7 мин
Количество просмотров46K
Самая первая спецификация продукта, частично устная, содержала требование – наличие кроссплатформенного(Windows, Linux, Mac) клиента под десктоп и облегченную версию мобильного(Windows, Android, iPhone). По возможности интерфейс должен быть максимально похожим на разных ОС.
Благодаря Mono мы можем писать кроссплатформенные приложения, но вопрос с GUI остается открытым. Имеющиеся технологии под .Net(Windows Forms, WPF) хорошо работают только под Windows, и у нас уже был печальный опыт портирования Windows Forms. Под Linux мы можем использовать GtkSharp, но идея ставить Mono на Windows при наличии .Net мне не нравится. В итоге приходится писать и поддерживать отдельный интерфейс под каждую ОС.
Что в этой ситуации могла придумать команда .Net(с уклоном под веб)? Решили встраивать Webkit и писать GUI на связке html-js-css.
На сегодняшний день мы 2 года успешно используем такой подход для Windows и год – под Linux и Mac. До мобильной платформы пока руки не дошли.
Зачем и Как?
Всего голосов 33: ↑28 и ↓5+23
Комментарии41

Python на Хабре

Время на прочтение7 мин
Количество просмотров451K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →
Всего голосов 182: ↑162 и ↓20+142
Комментарии65

Мега-Учебник Flask, Часть 2: Шаблоны

Время на прочтение6 мин
Количество просмотров186K
Это вторая статья в серии, где я описываю свой опыт написания веб-приложения на Python с использованием микрофреймворка Flask.

Цель данного руководства — разработать довольно функциональное приложение-микроблог, которое я за полным отсутствием оригинальности решил назвать microblog.



Краткое повторение


Если вы следовали инструкциям в первой части, то у вас должно быть полностью работающее, но еще очень простое приложение с такой файловой структурой:

microblog\
  flask\
    <файлы виртуального окружения>
  app\
    static\
    templates\
    __init__.py
    views.py
  tmp\
  run.py


Для запуска приложения вы запускаете скрипт run.py, затем открываете url http://localhost:5000 в вашем браузере.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии6

Удаленная работа: как мы это делаем

Время на прочтение4 мин
Количество просмотров106K
Я проработал удаленно почти 10 лет, и познал разные стороны такой работы: как плохую так и хорошую. Я понял, что удаленная работа подходит определенному типу людей. Вы должны уметь фокусироваться, мотивировать себя, а также грамотно управлять своим временем. У вас нет этих качеств? Ничего, поначалу я тоже ничего этого не умел.
Читать дальше →
Всего голосов 75: ↑65 и ↓10+55
Комментарии65

Таргетинг пользователей: регион, город, улица

Время на прочтение9 мин
Количество просмотров12K
Иногда в своих проектах мне хотелось прикрутить некоторую географическую базу, с помощью которой я бы разделял пользователей ресурса по их месту пребывания. Но постоянная занятость делами насущными никак не давала реализовать идею с базой регионов и мало-мальски удобным интерфейсом для ее визуализации.
Волею судьбы и заказчика (или судьбы заказчика или заказчика судьбы) такая задача, наконец-то, возникла — необходимо создать базу регионов, городов и улиц для сегментирования пользователей и реализовать удобную web-форму, собственно, для ее использования. Благо заказчик ориентировал свой бизнес на Россию, что резко упростило задачу.

Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии26

Arduino в руках дизайнеров

Время на прочтение5 мин
Количество просмотров27K
Недавно в Британской Высшей Школе Дизайна прошла предварительная защита проектов на курсе промышленного дизайна. Студенты представили концепты проектов умных устройств, которые будут доводиться до ума, а именно до готовности к серийному производству.

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

Представляю вашему вниманию короткий обзор 9 проектов, которые презентовались на защите.

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

GSM на столе

Время на прочтение4 мин
Количество просмотров72K
Разработка под веб: HTTP, HTML, CSS, JavaScript, Python… Ох. Всё одно и то же. Так хочется отвлечься на что-нибудь радикально другое. Я же обитаю в московском хакспейсе Нейрон! Почему бы не поспрашивать вокруг?

Например, в Нейроне сидят ребята из компании Fairwaves, разрабатывающие GSM-оборудование для недорогих сотовых сетей. Весь стек — от железа до софта — доступен под open source лицензией. Да, да, включая железо. Поэтому совсем не обязательно работать в Fairwaves, чтобы познакомиться с этой технологией. И результат копания можно выложить на GitHub или сделать вклад в существующий проект. Как минимум, будет чем похвастаться на собеседованиях.

Пара дней чтения документации, пролистывания кода, десятки навязчивых вопросов и экспериментов (спасибо Александру Чемерису и Ивану Ключникову за помощь). И вот результат — собственная GSM-сеть под контролем моего Макбука:

HabraFon
Читать дальше →
Всего голосов 84: ↑79 и ↓5+74
Комментарии55

Linux-vserver или каждому сервису по песочнице

Время на прочтение5 мин
Количество просмотров22K
Недавно на хабре публиковались статьи о openvz и lxc. Это напомнило мне, что эта статья всё еще валяется в sandbox'е…

Для целей размещения проектов я применяю такую схему: каждый сервис запускается в изолированной среде: боевой — отдельно, тестовый — отдельно, телефония — отдельно, веб — отдельно. Это снижает риски взлома систем, позволяет бакапить всё и вся одним rsync'ом на соседний сервер по крону, а в случае слёта железа просто поднять на соседнем железе. (А использование drbd + corosync позволяет это делать еще и автоматически)

Для создания изолированной среды есть два подхода, именуемые VDS (виртуализация аппаратуры) и VPS/jail (виртуализация процессного пространства).

Для создания VDS изоляций применяют XEN, VirtualBox, VMWare и прочие виртуальные машины.
Для создания VPS на linux используется либо linux-vserver, либо openvz, либо lxc.

Плюсы VDS: система внутри может быть совершенно любой, можно держать разные версии ядер, можно ставить другую ОС.
Минусы VDS: высокие потери производительности на IO, избыточное потребление CPU и RAM на сервисы, дублирующие запущенные на серверной ОС.

Плюсы VPS: крайне низкая потеря производительности, только на изоляцию, запускаются только те сервисы, которые реально необходимы.
Минусы VPS: можно запустить только linux и ядро будет только той версии, что уже запущено.

Так как мне не нужны разные ОС, то всюду применяю linux-vserver (так уж сложилось исторически, применяю с 2004го года, а openvz вышел в открытый доступ в 2005м), а lxc в моём понимании еще не дорос до продакшена (хотя и очень близок уже).

Приведу цитату из FAQ:
«What is the status of Linux-VServer?
Linux-VServer has more than a decade of maturity and is actively developed. Two projects are similar to Linux-VServer, [LXC], and [OpenVZ]. Of the two, OpenVZ is the more mature and offers some similar functionality to Linux-VServer. LXC is solely based on the kernel mechanisms such as cgroups that are present in modern kernels. These kernel mechanisms will continue to be refined and isolation will mature. As that occurs, Linux-VServer will take advantage of those new features separately from LXC and continue to provide the same robust user interface that it does currently. Currently, LXC offers significantly less functionality and isolation than Linux-vserver. LXC will eventually be a robust wrapper around kernel mechanisms but is still under heavy development and not considered ready for production use.»

Ниже я опишу базовые операции по запуску LAMP сервера в изолированном окружении.
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии27

Web интерфейс прослушивания записей звонков Asterisk

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

Поисковые системы выдают огромное количество результатов разной полезности на запрос вынесенный в заголовок.
На Хабрахабре такой статьи не нашел, а значит её нужно написать!
За основу я взял проект asterisk cdr viewer.
Перевел язык web интерфейса на великий могучий и «озвучил» его, т.е. добавил возможность прослушивать файлы записей разговоров в браузере, а так же скачивать их.
Количество полей фильтра сокращено до минимума, остались только самые необходимые.
Скриншоты, сорцы и подробное описание инсталляции уютно разместились под хабракатом.

UPDATE_2016
Готов новый интерфейс.
Небольшой видео-гайд:

Подробнее здесь

Enjoy !
Всего голосов 18: ↑16 и ↓2+14
Комментарии35

Шпаргалка по типам и стандартам Ethernet 802.3

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

Когда я изучал CCNA больше всего меня напрягали стандарты IEEE из-за своего количества, типов и названий. И приходилось каждый раз искать и смотреть какому стандарту соответствует такой-то тип интерфейса. После многих часов работы я смог слепить до кучи таблицы по каждому типу Ethernet интерфейсов, которая включает год выпуска стандарта, тип интерфейса, скорость передачи данных соответствующего типа интерфейса, максимальную длину сегмента и тип используемого кабеля. Рад поделиться с читателями.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии14

Сезон обновлений в JetBrains: RubyMine 6.0

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

Мы выпустили RubyMine 6 — новую версию нашей профессиональной интегрированной среды разработки для Ruby и Rails. В 6-й версии добавлена долгожданная поддержка работы с несколькими проектами, для ускорения работы переписан парсер Ruby, которому заодно добавили поддержку Ruby 2.1-preview1. IDE стала значительно производительнее, а поддержку Ruby 2.1-preview2 мы планируем сделать в RubyMine 6.0.1.

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

Обучение в сфере веб-разработки, веб-дизайна и интернет-маркетинга

Время на прочтение3 мин
Количество просмотров19K
Сегодня я хочу рассказать о нашем проекте – это бизнес-школа, которая задумывалась, как место практических знаний в сфере digital, место, где учат интернет-профессиям и повышают квалификацию.

Мы, как и все, испытываем недостаток знающих людей с одной стороны, а с другой видим очень многих людей, которые хотят учиться, но не знают, как и где. В ВУЗах не учат веб-разработке, веб-дизайну и интернет-маркетингу, в лучшем случае пытаются это делать, но результаты у них пока плачевные. Наблюдая эту тенденцию мы решили взяться за дело и начать учить тому, что сами знаем, а именно: PHP, Python, Ruby, JS, интернет-маркетинг, электронная коммерция, менеджмент в ИТ и т.д.

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

Кому не безразлично будущее отрасли, прошу под кат. Это образование, это важно!
Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии9

Обзор Highscreen Black Box Connect: если скрестить регистратор с IP-камерой

Время на прочтение10 мин
Количество просмотров21K
Совсем недавно на Хабрахабре публиковался обзор многофункциональной камеры Defender WF-10HD. Судя по всему, вещь камрадам понравилась. Однако в материале не хватало уточнения многих особенностей работы устройства. В комментариях были даны ссылки на якобы устройства-близнецы других брендов, да и без aliexpress не обошлось, особенно объемно тут высказался yurash. В общем, сам я довольно долгое время работал с Highscreen Black Box Connect, с которого вся эта тема совмещения камеры регистратора и IP-камеры и началась, как минимум в России. Поэтому я решил поведать о своем взгляде на модель, а также не поленился выяснить историю ее появления.

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

Искусственный интеллект под Android с открытым API

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

Только ленивый не знает сегодня о том, что такое голосовой помощник Siri. Когда два года назад этот продукт был показан на презентации нового iPhone 4S, многие посмотрели на развитие IT-индустрии по-новому. Действительно, искусственный интеллект в кармане, понимающий естественную речь, еще не показывал никто.

Многие в то время начали говорить о том, что Apple может уже на следующем WWDC предоставить всем программистам под iOS возможность использовать открытое API ассистента Siri для своих собственных программ. Картина вырисовывалась радужной — любое приложение смогло бы реагировать на пользовательские фразы, исполняя различные команды. Действительно, если в магазине AppStore так много разных полезных приложений, почему бы им не дать возможность управления голосом? Тем более что такой вид коммуникации с пользователем, как речь, быстро стал трендовым после выхода iPhone 4s.

О том, удалось ли это сделать Apple, и что удалось сделать нам, читайте далее.

Читать дальше →
Всего голосов 98: ↑86 и ↓12+74
Комментарии74

Инвижин? Хуижин!* Как мы делали бесплатный аналог InvisionApp

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

*Whoision — официальное название сервиса, с налетом еле заметной иронии.

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

Сам по себе сервис прекрасный, там можно даже связывать макеты отдельных страничек в прототип. Одна загвоздка — ограничение по количеству активных проектов и участников демонстрации. Платный аккаунт всё решает, но у наших ребят давно зачесались руки устроить хакатон. А это значит, что мы построим свой Инвижин, с драг-н-дропом и Google-синхронизацией.

На весь проект у нас одни сутки. Сознаемся, дизайн и верстку мы вынесли за пределы хакатона — делали всё это непосредственно перед ним. Как и тестирование, которое мы перенесли на следующий день. Всё это, с одной стороны, нивелирует наш героический подвиг, но с другой — романтики в нем меньше не становится.

Итак, хроника рабочего процесса со слов участников. В конце — ссылка на сам сервис, для нетерпеливых.
Читать дальше →
Всего голосов 157: ↑111 и ↓46+65
Комментарии64

Как мы делали Wiren Board

Время на прочтение7 мин
Количество просмотров58K
Последние 9 месяцев мы разрабатывали Wiren Board — компактный индустриальный компьютер с множеством встроенных интерфейсов (Wi-Fi, GPRS, GPS, NFC, Ethernet и т.д.) Мы уже писали о нём, и получили кучу отзывов и пожеланий. В итоге в новую версию было внесено много изменений, и эта статья про самые значительные из них.

По сравнению с апрельским прототипом на плате появились 2 USB-host, интерфейс RS-485 и разъём с 8 GPIO. Кроме этого мы сделали новую схему питания, поддерживающую входные напряжения от 5 до 22 вольт, Passive PoE и подключение Li-Pol аккумулятора, добавили управление низковольтной нагрузкой и аналоговые входы на клеммниках.



Как мы это делали, с какими трудностями столкнулись и что получилось в итоге — читайте в нашей статье.
Читать дальше →
Всего голосов 96: ↑93 и ↓3+90
Комментарии79

Кнопка «прочитать позже»

Время на прочтение1 мин
Количество просмотров17K
Здравствуй, %username%! Недавно (а точнее после прочтения этого топика) я задался вопросом о разделении избранного и того, что я хочу прочитать позже. Немного поискав, я обнаружил, что решения пока никто не предложил, и быстро набросал расширение для Google Chrome, которое добавляет кнопку «прочитать позже», а также пункт «прочитаю позже» в избранное.
Читать дальше →
Всего голосов 50: ↑34 и ↓16+18
Комментарии37

Собираем по немножко от сервисов Google и Redmine на своем сервере

Время на прочтение4 мин
Количество просмотров19K
Последнее время во всех коллективах где мне доводилось работать я так или иначе продвигал систему управления проектами, так как без нее начинался полный бардак, который мне терпеть ни будучи исполнителем, ни будучи руководителем мне не хотелось. Основным кандидатом для наведения порядка почти всегда становился Redmine, но чем дольше я им пользовался (как со стороны пользователя, так и со стороны администратора), тем больше хотелось перейти на что-то другое. Да, как багтрекер она работает замечательно, но как только хочешь получить что-то большее, например, хотя бы личные/общие календари — начинается возня. А если уж надо переехать на другой сервер… Даже и вспоминать не хочется — каждый раз какие-то «танцы».

В то же время я довольно плотно привязался к сервисам компании Google, таким как Docs, Calendar, Gmail… И если с последним более менее все понятно, то, например, аналог первого хотелось иметь локально: когда корпоративная почта не в Google Apps, который к тому же теперь всегда платный, пользоваться уже не так удобно, да и доступ к локальным ресурсам защищеннее и быстрее.

И тут после довольно активных поисков мне попадается Feng Office, который на хабре, к сожалению, почти обделен вниманием: упоминания встречаются лишь в нескольких вопросах и без особых подробностей. Подумалось — сделалось: под катом то что из этого получилось (включая пару десятков скриншотов, правда не очень тяжелых)
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии4

Работа с растром на низком уровне для начинающих

Время на прочтение6 мин
Количество просмотров77K
Поводом для данной статьи стал следующий пост: «Конвертация bmp изображения в матрицу и обратно для дальнейшей обработки». В свое время, мне немало пришлось написать исследовательского кода на C#, который реализовывал различные алгоритмы сжатия, обработки. То, что код исследовательский, я упомянул не случайно. У этого кода своеобразные требования. С одной стороны, оптимизация не очень важна – ведь важно проверить идею. Хотя и хочется, чтобы эта проверка не растягивалась на часы и дни (когда идет запуск с различными параметрами, либо обрабатывается большой корпус тестовых изображений). Примененный в вышеупомянутом посте способ обращения к яркостям пикселов bmp.GetPixel(x, y) – это то, с чего начинался мой первый проект. Это самый медленный, хотя и простой способ. Стоит ли тут заморачиваться? Давайте, замерим.

Использовать будем классический Bitmap (System.Drawing.Bitmap). Данный класс удобен тем, что скрывает от нас детали кодирования растровых форматов – как правило, они нас и не интересуют. При этом поддерживаются все распространенные форматы, типа BMP, GIF, JPEG, PNG.
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии22

Информация

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