Как стать автором
Обновить
31
0
Роман Терешин @ramntry

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

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

Печатать с удовольствием

Время на прочтение28 мин
Количество просмотров25K
В настоящей статье я исследую человеческие и машинные аспекты задержки при печатании (вводе с клавиатуры или «запаздывание ввода») и представляю экспериментальные данные по задержке при работе с популярными редакторами текста и кода.

С недавних пор Задержка стала горячей темой в компьютерном мире — сейчас есть клавиатуры с малой задержкой, мониторы на 144 Гц, специальные технологии, уменьшающие время задержки (как, например, FreeSync или G-Sync), интересующиеся этим сообщества и прочее и прочее. Конечно, часть этой моды создана маркетингом, но правда в том, что малая задержка стала возможной и желательной.

Очевидно, что геймеры — первые, кто выигрывает от таких улучшений. В некоторых областях, таких как виртуальная реальность, задержка оказывается решающим фактором, даже когда речь идёт об одной миллисекунде. Но что сказать о программистах? Нужно ли нам «печатать с удовольствием», чтобы «разрабатывать с удовольствием»? Давайте разберёмся.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии17

Невозможный двигатель EmDrive, эффект Унру, фотоны и инерция: попытка объяснить непонятное

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

Английский учёный из Плимутского университета Майк Макалох [Mike McCulloch] в своей работе попытался дать объяснение принципу действия «невозможного» двигателя EmDrive, который вот уже несколько лет ставит в тупик специалистов. Для этого учёному пришлось дать объяснение такому фундаментальному понятию физики, как инерция.

Двигатель EmDrive придумал в начале 2000-х британский инженер Роджер Шойер. Он представил общественности свою идею о двигателе, по сути состоящем из металлического усечённого конуса и магнетрона. По его расчётам, отражающиеся внутри конструкции электромагнитные волны должны создавать тягу без всяких реактивных компонентов.

Естественно, он был поднят на смех, поскольку закон сохранения импульса не позволяет создавать подобные устройства. Но, начиная с 2008 года и опыта китайских учёных, а затем – нескольких инженеров-энтузиастов, и заканчивая опытами уважаемых инженеров из НАСА, накапливается всё больше подтверждений тому, что этот странный двигатель всё-таки работает.
Читать дальше →
Всего голосов 50: ↑45 и ↓5+40
Комментарии274

Подводные камни использования Excel Power Query и MySQL для автоматизации отчетности

Время на прочтение7 мин
Количество просмотров33K
image
Всем привет.
Наступил новый 2016 год, а значит пора обновить инструменты для упрощения скучной механической работы. Отделы аналитики, маркетинга, продаж часто сталкиваются со следующими трудностями при обновлении отчетности:
1. Данные приходится собирать воедино из нескольких источников.
2. Отчеты составляются в Excel, что накладывает значительные ограничения на объем обрабатываемых данных.
3. Внесение изменений в заранее настроенные разработчиками выгрузки дело как правило не самое быстрое.

Если отчеты нужно обновлять еженедельно или даже ежедневно, то эта процедура становится весьма напряжной даже для самых терпеливых. С помощью надстройки Excel Power Query и записи данных в MySQL можно свести обновление большинства отчетов до простого нажатия кнопки «Обновить»:
1. Данные из любого количества источников импортируются через SQL-запросы в обычные таблицы Excel.
2. Даже из большой базы можно записывать в Excel только небольшую часть данных (например, итоговые суммы за нужный диапазон дат с группировкой только по нужным столбцам).
3. Изменения в отчет можно вносить просто поменяв SQL-запрос. Далее формируем нужный отчет стандартными средствами Excel.

В этой статье я покажу как настраивать и автоматически заполнять простые базы данных MySQL (на примере выгрузки статистики всех ключевых слов из Яндекс Метрики), а потом одной кнопкой обновлять отчеты в Excel, используя надстройку Power Query. Power Query имеет весьма странные особенности работы при составлении SQL-запросов (особенно динамических), которые мы разберем во второй части статьи.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии1

Пять заблуждений об открытом ПО

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

Программное обеспечение с открытым кодом имеет своих почитателей, а в последнее время если речь заходит о разработке каких-то «национальных» продуктов, так в основном open-source и подразумевают. Парадоксально, но интерес к этому виду программного обеспечения породил массу искажений и заблуждений, которые на практике мешают его распространению.

Наша компания участвует в открытых проектах с 2005 года – и благодаря разработке собственных open source решений (проекты OpenVZ, CRIU), участвуя в других открытых проектах (QEMU, OpenStack, libvirt, libcontainer, и т.д.). За 10 лет мы собрали несколько наиболее распространённых мифов об открытом программном обеспечении. Я расскажу про каждое из заблуждений и объясню, почему оно ошибочно. Наверняка, вы вспомните еще столько же, но, на мой взгляд, эти пять самые «адовые».

Читать дальше →
Всего голосов 53: ↑47 и ↓6+41
Комментарии77

Знакомство с робототехническим конструктором ТРИК: обратный маятник

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

Введение и постановка задачи




Что общего между женской грудью и игрушечной железной дорогой? Правильно, и то, и то предназначено для детей, а играют с ними папы. Несколько дней назад я обзавёлся роботехническим конструктором ТРИК. Комплект довольно суровый, разработчики утверждают, что он хорош для быстрого прототипирования и для обучения, а именно (само-)обучение меня в данный момент и интересует.

Что сейчас широко доступно на рынке для робототехнических игр? Самодельное изготовление плат под каждый проект не рассматриваем. Лего, распи, ардуино. Лего прекрасен, но, к сожалению, очень и очень сильно ограничен. Распи и ардуины неплохо расширяются, но довольно неудобны и быстро превращаются в рассыпуху разных карточек-шильдиков-макеток. Вот тут и выходят на рынок питерские ребята со своим конструктором ТРИК.

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

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

Как я нашел лучший в мире язык программирования. Часть 2

Время на прочтение6 мин
Количество просмотров102K
Первая часть здесь. Продолжение:

Семь долбаных лет я ждал язык, который хоть как то ответит части моих желаний. За это время, и в фоновом режиме я препробывал всё. Всё — означает, всю херню общего назначения, и всю херню не совсем общего назначения. Нельзя прочувствовать язык только что-то прочитав про него и написав Hello World. Чтобы понять — надо хоть немного попрограммировать — написать какую нить вещь. И вот все это время, я в минуты отчаянья качал какой-нить “замечательный язык”, и пытался что-то написать. Какие-то вещи даже до сих пор крутятся в конторе (или крутились).
Читать дальше →
Всего голосов 155: ↑103 и ↓52+51
Комментарии119

Leatherman представил новый носимый мультитул в виде браслета

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


Несмотря на мою прочную связь с IT, в душе я всё-таки механик. Именно поэтому я вздыхаю по медленно уходящим двигателям внутреннего сгорания, на стене моей комнаты висит диплом об успешном прохождении курсов мотомеханика, и мои любимые вещи — не смартфоны с планшетами, а ножи и мультитулы (многофункциональные инструменты).
Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии65

Развеиваем мифы или Java с человеческим лицом

Время на прочтение5 мин
Количество просмотров3.1K
Написать небольшую заметку на данную тему я решил после того, как прочитал тут на Хабре, обсуждение о выборе языка разработки для нового десктоп приложения. С завидным постоянством упоминался тот момент, что визуально, приложения на Java выглядят аляповато. Вот и решил я, слегка, прояснить это вопрос.

Итак, в чём же состоит особенность реализации десктоп приложений на Java и почему они способны быть очень красивыми? А также, откуда родился миф об ущербности (некоторые экзальтированные личности, порой, склонны даже употреблять слово ‘убогость’) Java GUI, читайте ниже. Я постарался не вдаваться в тонкости, не писать никакого кода, да и вообще не использовать никаких специфических для Java мира знаний. Хотелось бы, что бы заметка была понятна людям, далёким от этой технологии.

Большинство эрудированных программистов таки знают, что…
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии54

Немного об «утечке мозгов»

Время на прочтение3 мин
Количество просмотров63K
Довольно интересным выглядит жгучее волнение, которые испытывают многие отечественные руководители, когда речь идет о конкуренции с западным работодателем за инженерно-технический персонал.

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

Почему так получается, что инженеры пользуются спросом, а «эффективные менеджеры» которые ими руководят – совсем никому не интересны?
Читать дальше →
Всего голосов 220: ↑199 и ↓21+178
Комментарии200

Переход на Linux и сравнение Archlinux vs Ubuntu

Время на прочтение7 мин
Количество просмотров20K
Являясь опытным пользователем Windows задумался о переходе на Linux т.к. частенько натыкался на хвалебные статьи и заметки блоггеров. Вот и решил по экспериментировать и описать свой небольшой опыт.
Читать дальше →
Всего голосов 62: ↑36 и ↓26+10
Комментарии91

Ожидание ввода символа в юниксовой консоли

Время на прочтение1 мин
Количество просмотров1.6K
В очередной раз столкнулся с проблемой блокирующего чтения символа из юниксовой консоли. Кто имел счастье писать на борландовском Паскале под DOS наверняка помнит функцию ReadKey(), блокирующую выполнение программы до нажатия эникея. У меня пару раз всплывало это требование и в юниксовой консоли, но сишная функция getchar() блокирует выполнение до нажатия Enter, что не очень желательно в некоторых случаях.
Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии4

Memory management в ядре Linux. Семинар в Яндексе

Время на прочтение4 мин
Количество просмотров65K
Привет! Меня зовут Роман Гущин. В Яндексе я занимаюсь ядром Linux. Некторое время назад я провел для системных администраторов семинар, посвященный общему описанию подсистемы управления памятью в Linux, а также некоторым проблемам, с которыми мы сталкивались, и методам их решения. Большая часть информации описывает «ванильное» ядро Linux (3.10), но некоторая часть специфична для ядра, использующегося в Яндексе. Вполне возможно, семинар окажется интересен не только системным администраторам, но и всем, кто хочет узнать, как в Linux устроена работа с памятью.



Основные темы, затронутые на семинаре:
  • Задачи и компоненты подсистемы управления памятью;
  • Аппаратные возможности платформы x86_64;
  • Как описывается в ядре физическая и виртуальная память;
  • API подсистемы управления памятью;
  • Высвобождение ранее занятой памяти;
  • Инструменты мониторинга;
  • Memory Cgroups;
  • Compaction — дефрагментация физической памяти.

Под катом вы найдете более подробный план доклада с раскрытием основных понятий и принципов.
Читать дальше →
Всего голосов 113: ↑107 и ↓6+101
Комментарии15

Математик взломал сайт знакомств и нашёл девушку мечты

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


35-летнему математику Крису Маккинли (Chris McKinlay) из Калифорнийского университета в Лос-Анджелесе потребовалось всего 88 дней, чтобы осуществить дата-майнинг анкет на сайте знакомств и подобрать девушку, которая идеально подходит по характеру. Помог ему в этом доступ к суперкомпьютерам Калифорнийского университета, пишет Wired.
Читать дальше →
Всего голосов 324: ↑288 и ↓36+252
Комментарии262

Архитектура карьерного роста

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

С понедельничком (говорят — самым депрессивным в году), хабровчане!
После публикации этой статьи, многие заметили, что я шустрый карьерист, и у меня начали просить совета на тему: как обеспечить карьерный рост в IT-индустрии. Во избежание повторения одних и тех же советов разным людям в личных сообщениях я и пишу эту статью, делясь в ней историей своего собственного карьерного роста и основными наблюдениями, которые я сделал за 13 лет опыта работы в больших и не очень компаниях.
Сразу предупрежу, что не претендую на изложение универсальной теории карьерного роста сферического коня в вакууме, и большинство замечаний искривлено призмой моего восприятия. То, что неоднократно работало в моем случае, необязательно сработает в вашем.

Читать дальше →
Всего голосов 140: ↑125 и ↓15+110
Комментарии152

Введение в оптимизацию. Имитация отжига

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

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

image


Читать дальше →
Всего голосов 148: ↑138 и ↓10+128
Комментарии37

Онлайн курсы, взгляд преподавателя + зов разработчикам

Время на прочтение6 мин
Количество просмотров70K
imageВ данной статье я изложу свой взгляд на проведение онлайн курсов: какие есть игроки в Интернете, и чего, на мой взгляд, категорически не хватает в Рунете (Ау-у, разработчики!). В конце опрос.

Речь пойдёт об Learning Management Systems (LMS) для частных лиц. Модельные ситуации такие:
  • Преподаватель кружка для школьников средних классов по математике во Дворце Пионеров имеет несколько групп. Хочет организовать свой материал и как-то мотивировать детей что-то делать дома за компьютером.
  • Преподаватель ВУЗа вместе со своими студентами хочет сделать человеческий электронный конспект своих лекций. С нумерацией рисунков, оглавлением, формулами и подобными LaTex'овскими прибаутками.

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

Melange — DSL для сетевых протоколов

Время на прочтение8 мин
Количество просмотров16K
Всем программистам рано или поздно приходится передавать данные. Ни для кого не секрет, что библиотек сериализации в Java существует примерно >9000, а в C++ они вроде и есть, а вроде их и нет. К счастью для большинства, несколько лет назад появился Google Protobuf, который принёс достаточно удобный способ определять структуры данных и быстро завоевал всенародную любовь. Это была фактически первая, доступная широким массам библиотека, позволяющая гонять по сети готовые структуры данных, не связываясь при этом с чем-то вроде XML. На дворе был 2008 год.

Вернёмся немного назад. В 2006 году простой индийский программист (как бы подозрительно это ни звучало!) Анил Мадхавапедди, один из самых известных сейчас в мире OCaml-разработчиков и автор свежевышедшей книги Real World OCaml, защищал в Кембридже кандидатскую диссертацию. Именно о ней я сегодня вам и расскажу.

Анил сразу пошёл дальше, чем Google. Он сразу подумал, для чего люди обычно пересылают по сети какие-то формализованные структуры данных? Чтобы реализовать какой-то протокол. А что такое протокол? Это какой-то конечный автомат. А где мы можем взять хороший пример сложного, хорошо спроектированного и проверенного временем протокола? Да прямо в обычном сетевом стеке! Итак, были взяты набор сетевых структур данных и протоколов: Ethernet frame, IPv4, ICMP, TCP, UDP, SSH, DNS и DHCP и постановка задачи: большая часть этих протоколов (особенно SSH и DNS) реализуются, что называется «руками», а хочется, чтобы не было типичных для C переполнений буфера, все переходы совершались автоматически, это всё можно было верифицировать, и чтобы работало быстро, а не как обычно.

Поскольку никто не будет читать диссертацию, сразу скажу: это более чем удалось. По результатам работы были написаны референсные реализации DNS и SSH-сервера и произведено сравнение с BIND и OpenSSH. OCaml-реализации давали по сравнению с традиционными прирост производительности от незначительного, до почти двухкратного. Кроме того была найдена ошибка в RFC на SSH (рабочая группа была уведомлена и RFC исправлен). О том, что было сделано, и как с этим жить, читайте под катом.
Мне интересно.
Всего голосов 68: ↑68 и ↓0+68
Комментарии18

Как появились регулярные выражения

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

Небольшое предисловие


Меня всегда интересовала история появлений научных понятий. Перед изучающим новый предмет сначала встает череда безликих определений. Некоторые из них таковыми и остаются, другие привлекают внимание и со временем вырастают в полноценные объекты «картины мира». В качестве недоступного идеала такого стремления можно привести высказывание Литлвуда о Рамануджане:
каждое натуральное число было его лучшим другом

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

Далее будет приведено небольшое исследование подобного рода, объектом которого является понятие регулярного выражения.
Читать дальше →
Всего голосов 110: ↑104 и ↓6+98
Комментарии18

Lenovo P770 — «долгоиграющий» смартфон с аккумулятором на 3500мАч

Время на прочтение6 мин
Количество просмотров344K
image
Выпуская новые смартфоны производители очень часто забывают о самом главном — хорошем аккумуляторе. Да, 4 ядра, большой экран, ультратонкий дизайн — это хорошо. Но не доживать до вечера на одном заряде? Это слишком!
Есть ли на данный момент хороший компромисс? Чтобы и производительность хорошая, и экран, и аккумулятор. И при этом телефон не выглядел кирпичом?
Да, есть!
Компания Lenovo выпустила свой новый смартфон под названием — Lenovo P770. Два ядра, хороший экран, 2 сим-карты, аккумулятор на 3500мАч. А цена…
Интересно? Тогда читаем далее!
Читать дальше →
Всего голосов 118: ↑94 и ↓24+70
Комментарии144

AIDA. Автоматизация работы с Git, JIRA и TeamCity

Время на прочтение5 мин
Количество просмотров38K
При разработке и тестировании какого-либо продукта появляется много рутинной работы. Чтобы избежать ошибок, связанных с человеческим фактором, мы используем AIDA.

AIDA (англ. Automated Interactive Deploy Assistant) — это учётная запись, значительно облегчающая работу с Git, TeamCity и JIRA.
Сегодня речь пойдет о том, как с её помощью нам удалось автоматизировать многие рабочие процессы.

В первую очередь мы вспомним об используемой в Badoo системе контроля версий, далее расскажем о том, как было автоматизировано создание веток релиза и осуществлено автоматическое слияние веток в Git, поговорим о существенной помощи AIDA в работе с JIRA (контроль и изменение статуса задач, заполнение полей) и ТeamCity (непрерывная интеграция и развёртывание на тестовое окружение).
Читать дальше →
Всего голосов 53: ↑50 и ↓3+47
Комментарии52

Информация

В рейтинге
Не участвует
Откуда
Vancouver, British Columbia, Канада
Дата рождения
Зарегистрирован
Активность