Pull to refresh
2
0
Electronick @Electronick

User

Send message

Программировать скучно, но…

Reading time 8 min
Views 47K

Оригинал: Bruno Marnette: Coding is boring, unless…


Мне не удавалось, как разработчику, задерживаться на одной работе больше двух лет.


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


(Оговорка: мне везло, что я жил в местах, где работы для программистов было больше, чем программистов! Я понимаю, что возможность сменить работу доступна не всем).


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


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


В Enki нам повезло работать над трудной и интересной задачей. У нас есть много интересных штук для претворения их в код и множество занятных проблем, которые нужно решить. Поэтому, казалось бы, о какой скуке может идти речь? Но в начале её никогда и не бывает. Скука, как правило, нагнетается со временем, и поражает вас в самый неподходящий момент.


Вот почему мы заранее предлагаем решение, создавая культуру, которая спасет нас (постучим по дереву!) и сделает так, чтобы никогда не становилось скучно.

Читать дальше →
Total votes 61: ↑53 and ↓8 +45
Comments 47

Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

Reading time 12 min
Views 161K

Вступление


Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

Надеюсь что эта статья будет полезна:
1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
2. Профессионалам, которые хотят закрыть «дыры» и пробелы
3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →
Total votes 86: ↑81 and ↓5 +76
Comments 64

Создаём окружение для PyQt5 в Linux MInt (Ubuntu)

Reading time 7 min
Views 62K
image image image
Давно уже до пятой версии обновился Qt и вместе с ним PyQt, но найти информацию по ним в русскоязычном сегменте — задача не из простых. Под катом подробный туториал для тех, кто только начинает знакомиться со связкой Qt + python3.

Цель: собрать и настроить окружение, пройти путь от установки PyQt5 и создания формы в Qt Designer до запуска переносимого бинарника под Windows (да, всё верно, разрабатываем под Mint, собираем для linux и windows).

Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 7

Почему вам НЕ стоит использовать AngularJs

Reading time 12 min
Views 248K
Много времени прошло с момента появления AngularJs (в масштабах веб-технологий конечно). Сейчас в интернетах есть огромное количество постов восхваляющих этот фреймворк до небес, что это манна небесная не иначе, а критики не так уж и много как он того заслуживает. Но такие статьи уже потихоньку начинают появляться, и меня это радует, надеюсь индустрия переболеет ангуляром так же, как переболела MooTools, Prototype, %какой-нибудь новый язык под JVM%, %другая-супер-революционная-технология%. Не знаю почему, но в IT-области такие революционные технологии, которые поднимают шум, а потом пропадают, появляются довольно часто. Хороший разработчик должен уметь отличать очередную модную технологию, от работающего инструмента. И для этого очень важно критически смотреть на вещи. Моя статья — это компиляция самых весомых выводов из других статей, и моих личных умозаключений. Ангуляр создает хороший вау-эффект, когда видишь его впервые: «ух ты, я написал ng-repeat, и реализовал эту логику одними тегами и все само обновляется!», но как только приходится реализовывать реальные приложения, а не очередной TODO-лист, то все становиться очень печально. Сразу хочу сказать, что фреймворк я знаю хорошо, даже больше чем мне хотелось бы его знать, я программировал на нем в течении 2 лет. И для следующего проекта я его точно не выберу, и это хорошо, все мы учимся на ошибках. Так что же не так с ангуляром? Тут нет однозначного ответа, слишком много разных недостатков, которые создают такой облик фреймворку. Если одним словом – непродуманная архитектура. Под катом я привожу конкретику, так что устраивайтесь поудобнее. ДА НАЧНЕТСЯ ХОЛЛИ ВАР!
Читать дальше →
Total votes 305: ↑242 and ↓63 +179
Comments 387

Руководство хакера по нейронным сетям. Схемы реальных значений. Стратегия №3: Аналитический градиент

Reading time 4 min
Views 16K
Содержание:
Глава 1: Схемы реальных значений
Часть 1:
   Введение   
      Базовый сценарий: Простой логический элемент в схеме
      Цель
         Стратегия №1: Произвольный локальный поиск

Часть 2:
         Стратегия №2: Числовой градиент

Часть 3:
         Стратегия №3: Аналитический градиент

Часть 4:
      Схемы с несколькими логическими элементами
         Обратное распространение ошибки

Часть 5:
         Шаблоны в «обратном» потоке 
      Пример "Один нейрон"

Часть 6:
      Становимся мастером обратного распространения ошибки


Глава 2: Машинное обучение
Часть 7:
      Бинарная классификация

Часть 8:
      Обучение сети на основе метода опорных векторов (SVM)

Часть 9:
      Обобщаем SVM до нейронной сети

Часть 10:
      Более традиционный подход: Функции потерь



В предыдущем разделе мы оценивали градиент путем исследования выходного значения схемы по каждому исходному значению по отдельности. Эта процедура дает нам то, что мы называем числовым градиентом. Однако этот подход все равно считается довольно проблематичным, так как нам нужно вычислять результат схемы по мере изменения каждого исходного значения на небольшое число. Поэтому сложность оценки градиента является линейной по количеству исходных значений. Но на практике у нас будут сотни, тысячи или (для нейронных сетей) от десятков до сотен миллионов исходных значений, и схемы будут включать не только один логический элемент умножения, но и огромные выражения, которые могут быть очень сложными в вычислении. Нам нужно что-то получше.
Читать дальше →
Total votes 32: ↑26 and ↓6 +20
Comments 0

Белоруссия

Reading time 4 min
Views 3.1K
imageПривет! Мне очень понравилась идея блога «Я мигрирую», поэтому я решил присоединиться и рассказать о том, как замечательно живется в братской нам стране Белоруссии.

Сам я до 22 лет жил в Москве, занимался php-программированием и seo. Полтора года назад мне наскучила жизнь в перенаселенном городе со стремительным ритмом жизни, и я оставив друзей и родных переехал в ближнее, но такое далекое от нас зарубежье, Республику Беларусь. Теперь я живу в пригороде Минска, работаю в большом светлом офисе с видом на реку Свислочь, в компании увлеченных энтузиастов-профессионалов выпуская в свет тематические социальные интернет-проекты web 2.0. Уверен, об этом мечтает каждый посетитель сайта Хабрахабр.

Читать дальше →
Total votes 99: ↑82 and ↓17 +65
Comments 90

JPHP — Как он работает. История создания

Reading time 16 min
Views 30K
В этой статье я расскажу более подробно об истории проекта JPHP и каким образом он был разработан с технической стороны. Текст будет интересен как простым разработчикам PHP, так и любителям компиляторов. Я постарался описать все на простом языке.

image

JPHP это компилятор языка PHP для Java VM. Две недели назад я писал статью о проекте. Похожие проекты — JRuby для ruby, Jython для python. После публикации первой статьи о JPHP, проект за два дня набрал 500 звёзд на гитхабе и успел засветиться не только в РУнете, но и на зарубежных ресурсах, успел побывать на первом месте в рейтинге гитхаба.
Читать дальше →
Total votes 125: ↑115 and ↓10 +105
Comments 45

[видео] Как поставить человека на место: 10 реальных вопросов про давление в переговорах

Reading time 2 min
Views 229K
Видео про 8 способов противостояния формуле нужды оказалось неожиданно популярным, набрав 8,000 просмотров за два дня. Мы решили продолжить тему.

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

Мы отобрали 10 самых любопытных, на наш взгляд, вопросов в этой теме и снова заперли в студии Дмитрия Коткина, руководителя Санкт-Петербургской школы переговорщиков ШиП и нашего хорошего друга, чтобы он рассказал, что конкретно делать:



10 реальных ситуаций, которые удалось осветить — под катом:

Читать дальше →
Total votes 157: ↑138 and ↓19 +119
Comments 62

Конечные алгебры, геометрии и коды. Лекция Григория Кабатянского в Яндексе

Reading time 3 min
Views 22K
Хотя почти всё в окружающем нас мире конечно, в математике до недавнего времени доминировали бесконечные объекты. Серьезный интерес к конечной математике возник всего полвека назад — с появлением первых компьютеров. И бесконечная (непрерывная) математика остаётся для нас гораздо привычнее и понятнее.

Эта лекция посвящена удивительному повороту истории, когда конечные поля (поля Галуа), прежде незнакомые даже многим профессиональным математикам, стали вдруг востребованы инженерами, и тому, как это изменило наше знание теории конечных полей и родственных объектов.



Для начала подумаем, как рассадить на n–мерном кубе максимальное число Sp(n) пауков так, чтобы они не дрались. У паука n лап — по одной на каждое ребро, при этом длина лапы равна длине ребра куба. Драка начинается, если два паука дотянулись до одной и той же вершины. Можем ли мы добиться совершенного расположения: чтобы на каждой вершине было по пауку?
Конспект лекции
Total votes 83: ↑74 and ↓9 +65
Comments 0

Подборка трюков при анализе защищенности веб приложений

Reading time 5 min
Views 35K
Всем привет! Этот топик посвящен разным трюкам при анализе защищенности (пентесте) веб приложений. Периодически сталкиваешься с ситуацией, когда надо обойти какую-нибудь защиту, выкрутиться в данных ограничениях или просто протестировать какое-то неочевидное место. И этот пост как раз об этом! Добро пожаловать под кат.
Читать дальше →
Total votes 87: ↑81 and ↓6 +75
Comments 16

Знания о языке и Яндекс. Зачем нам падежи? Лекция малой школы анализа данных

Reading time 1 min
Views 20K


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

В этой лекции Елена Грунтова раскрывает студентам Малого ШАДа понятие грамматической категории и подробно рассказывает падежах, их природе, типах, а также способах выражения.

Лекция рассчитана на старшеклассников, но выходит за рамки школьной программы, поэтому может быть интересна и взрослым.
Презентация
Total votes 61: ↑55 and ↓6 +49
Comments 4

Лекции от Яндекса для тех, кто хочет провести каникулы с пользой. Дискретный анализ и теория вероятностей

Reading time 3 min
Views 143K
Для тех, кому одного курса на праздники мало и кто хочет больше, продолжаем нашу серию курсов от Школы анализа данных Яндекса. Сегодня подошла очередь курса «Дискретный анализ и теория вероятностей» – даже более фундаментального, чем предыдущий. Но без него нельзя представить ещё большую часть современной обработки данных.

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



Читает курс Андрей Райгородский. Доктор физико-математических наук. Профессор кафедры математической статистики и случайных процессов механико-математического факультета МГУ им. М. В. Ломоносова. Заведующий кафедрой Дискретной математики ФИВТ МФТИ. Профессор и научный руководитель бакалавриата кафедры «Анализ данных» факультета инноваций и высоких технологий МФТИ. Руководитель отдела теоретических и прикладных исследований компании «Яндекс». (Ещё больше можно узнать в статье о нём на Википедии).

Содержание курса и тезисы лекций
Total votes 121: ↑115 and ↓6 +109
Comments 21

Machine Learning. Курс от Яндекса для тех, кто хочет провести новогодние каникулы с пользой

Reading time 8 min
Views 264K
Новогодние каникулы – хорошее время не только для отдыха, но и для самообразования. Можно отвлечься от повседневных задач и посвятить несколько дней тому, чтобы научиться чему-нибудь новому, что будет помогать вам весь год (а может и не один). Поэтому мы решили в эти выходные опубликовать серию постов с лекциями курсов первого семестра Школы анализа данных.

Сегодня — о самом важном. Современный анализ данных без него представить невозможно. В рамках курса рассматриваются основные задачи обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на глубокое понимание математических основ, взаимосвязей, достоинств и ограничений рассматриваемых методов. Отдельные теоремы приводятся с доказательствами.



Читает курс лекций Константин Вячеславович Воронцов, старший научный сотрудник Вычислительного центра РАН. Заместитель директора по науке ЗАО «Форексис». Заместитель заведующего кафедрой «Интеллектуальные системы» ФУПМ МФТИ. Доцент кафедры «Математические методы прогнозирования» ВМиК МГУ. Эксперт компании «Яндекс». Доктор физико-математических наук.
Содержание и видео всех лекций курса
Total votes 172: ↑166 and ↓6 +160
Comments 47

Лучшее из мира PHP за 2013 + конкурс от компании JetBrains! Дайджест интересных материалов №32

Reading time 8 min
Views 31K


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

Под катом вас также ждет конкурс с призами от компании JetBrains!
Читать дальше →
Total votes 69: ↑56 and ↓13 +43
Comments 94

Подарок от Skype на новый год

Reading time 1 min
Views 785K
image

Вероятно, в качестве рождественского и новогоднего подарков, Microsoft запустила акцию Skype Collaboration Project, в рамках которой Skype дарит пользователям возможность на весь следующий год возможность пользоваться функциями групповой работы (видеочат и разделение экрана), а также отключить отображение рекламы. Еще вы получаете годовой абонемент на обмен картинками рабочего стола в групповых звонках, полным отсутствием рекламы и бесплатную техническую поддержку на период прохождения акции.

Для участия в акции переходим по этой ссылке и вводим туда почту на которую придет письмо с кодом (Вводить почту на которую зарегистрирован аккаунт скайпа не обязательно).
Читать дальше →
Total votes 373: ↑351 and ↓22 +329
Comments 274

Извлечение 4096-битных ключей RSA с помощью микрофона

Reading time 3 min
Views 107K


Знаменитый криптограф Ади Шамир (буква “S” в аббревиатуре RSA) с коллегами вчера опубликовал научную работу под названием «Извлечение ключа RSA путём акустического криптоанализа с низкой частотой дискретизации» (RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis). За сложным названием скрывается исключительно доступный метод извлечения ключей RSA (в реализации GnuPG) с помощью обычного мобильного телефона или микрофона. Достаточно лишь положить телефон в 30 см от компьютера жертвы. Если использовать качественные микрофоны, то извлекать ключи можно с расстояния до 4 метров.
Читать дальше →
Total votes 156: ↑144 and ↓12 +132
Comments 219

Я знаю, что ты знаешь, что я знаю, что ты знаешь…

Reading time 3 min
Views 30K
Вольный перевод одного из ответов с mathoverflow. Ответ, в принципе, такой самодостаточный и интересный, что вполне может быть прочитан и без усвоения сути вопроса. Поэтому, если по каким-либо причинам вы застопорились на прочтении вопроса, я вам советую перейти сразу к ответу.

Вопрос

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

: «Я знаю, что вы испекли пирог и положили его остывать на подоконник; но вы не знаете, что я знаю». В таком случае, если я съем пирог, то об этом скорее всего никто и не узнает.

: «Я знаю, что вы испекли пирог и положили его остывать на подоконник; вы знаете, что я знаю; но я не знаю, что вы знаете, что я знаю». Если я съем пирог, то это может привести к довольно к щекотливой ситуации для меня.

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


Для маленьких значений , я еще могу вообразить, как при переходе от предложения к действительно меняется суть происходящего. Но я совершенно не могу вообразить, как, скажем, переход от к может повлиять на мою стратегию действий после того, как я съем пирог.

Есть ли какие-либо ситуации в жизни, будь-то реальные или искусственные, где переход от к для больших значений может реально повлиять на стратегию действий? А что насчет ? Как такие ситуации моделируются в математике?
Ответ
Total votes 59: ↑50 and ↓9 +41
Comments 65

Безопасность мобильного интернета изнутри и снаружи

Reading time 6 min
Views 36K
С развитием мобильных сетей развивается и мобильный интернет. Все привыкли к обычному интернету: витая пара, Ethernet, TCP/IP. А что же скрывает в себе интернет мобильный? Попробуем выяснить! В нашем исследовании мы коснемся общих принципов работы мобильного интернета, рассмотрим поближе GPRS Tunneling Protocol, поговорим о GRX-сети и обсудим некоторые практические подходы к безопасности мобильной пакетной сети.

Как каждый из нас подключается к мобильному интернету? В принципе, необходимо знать только три параметра: APN, логин и пароль. APN — это точка доступа, через которую абонент может подключиться к необходимой ему услуге (WAP, MMS, Internet); у наших операторов она обычно выглядит как internet.<operator-name>.ru. Логин и пароль обычно простые: internet — internet или вроде того.
Читать дальше →
Total votes 41: ↑40 and ↓1 +39
Comments 16

Pinboard — прокачиваем Pinba для мониторинга PHP

Reading time 2 min
Views 30K
Intaro PinboardСуществует полезный и нужный инструмент для мониторинга PHP под названием pinba. Он позволяет собирать статистику по выполнению PHP-скриптов вашего проекта. Мы реализовали небольшую систему, которая дополняет Pinba, и назвали ее Pinboard (Pinba board).

Суть работы


Pinba хранит исключительно realtime-данные за последние несколько минут, что очень круто, но не всегда удобно. Pinboard же периодически агрегирует эти данные в собственное хранилище и предоставляет простые средства просмотра и анализа этой информации, а в ближайшем будущем и средства простейшего мониторинга.
Читать дальше →
Total votes 68: ↑62 and ↓6 +56
Comments 50

Избавляемся от дублирования сквозного кода в PHP: рефакторинг кода с АОП

Reading time 12 min
Views 44K
Думаю, каждому программисту знаком принцип единственной ответственности, ведь не зря он существует: соблюдая его, можно написать код лучше, он будет более понятным, его будет легче дорабатывать.

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

Эта статья о том, как можно избавиться от дублирования сквозного кода, и как сделать его чуточку лучше с помощью АОП.

Читать дальше
Total votes 93: ↑89 and ↓4 +85
Comments 48

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity