Pull to refresh
4
0
Никита Мошкалов @CLTanuki

User

Send message

Девушкам: пять причин выйти замуж за айтишника и пять причин как следует подумать перед этим

Reading time 6 min
Views 72K

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

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

Пять причин выйти замуж за айтишника


1. Надежность и ответственность

Большинство моих знакомых коллег обладают высоким чувством ответственности — оно, видимо, волей-неволей вырабатывается в ходе профессиональной деятельности. Женясь на вас, айтишник возьмет на себя ответственность за ваш комфорт и достаток, и, будьте уверены, сделает все, чтобы их обеспечить. Здесь же стоит упомянуть и о способности фокусироваться на цели и достигать ее: обычно тихий и неподвижно медитирующий у монитора, ваш избранник может проявить бешенную активность и за невероятно короткие сроки свернуть горы. К примеру, если в какой-то момент он поймет, что негоже второй месяц сидеть в наполовину ободранном жилище, к концу следующей недели вы можете обнаружить себя в чистенькой и отремонтированной квартире. Так же на личном опыте проверенно, что один программист может за два-три часа привести в идеальный порядок двухкомнатную квартиру, которая общими усилиями замусоривалась в течение предыдущего месяца.

2. Интересный собеседник

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

Если так получится, что у вас хобби общее — вам можно будет только позавидовать. А если же нет — в тот момент, когда ваш любимый поймет, чем увлекаетесь вы, он наверняка предпримет небольшое исследование, просто чтобы иметь возможность по-настоящему оценить ваши достижения, ну и разговор поддержать. Впрочем, увы, новейшие веяния моды и новый альбом поп-звезды он вряд ли будет обсуждать…
Читать дальше →
Total votes 290: ↑227 and ↓63 +164
Comments 287

Уроки написания утилитки на $1 000 000

Reading time 4 min
Views 197K


Осенью 2008 года мы с приятелем потратили две-три недели свободного от основной работы времени, чтобы написать маленькую утилитку для бэкапа баз данных (MS SQL Server и потом MySQL). Сегодня она приносит нам около $230 000 в год и можно с уверенностью говорить, что суммарно мы заработаем на ней больше $1 000 000.

Под катом я расскажу, как это получилось и какие уроки мы из этого извлекли. Вполне возможно, что нам просто глупо повезло и опыт этот целиком неверен и теории не соответствует и только навредит вашему начинанию — читайте на свой страх и риск.
Читать дальше →
Total votes 471: ↑457 and ↓14 +443
Comments 247

Восстановление расфокусированных и смазанных изображений. Практика

Reading time 10 min
Views 347K
Не так давно я опубликовал на хабре первую часть статьи по восстановлению расфокусированных и смазанных изображений, где описывалась теоретическая часть. Эта тема, судя по комментариям, вызвала немало интереса и я решил продолжить это направление и показать вам какие же проблемы появляются при практической реализации казалось бы простых формул.

В дополнение к этому я написал демонстрационную программу, в которой реализованы основные алгоритмы по устранению расфокусировки и смаза. Программа выложена на GitHub вместе с исходниками и дистрибутивами.

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →
Total votes 459: ↑456 and ↓3 +453
Comments 141

Персональные данные (Краткий FAQ)

Reading time 8 min
Views 230K

Что такое персональные данные?


Персональные данные - любая информация, относящаяся к определенному или определяемому на основании такой информации физическому лицу, в том числе:  
— его фамилия, имя, отчество, 
— год, месяц, дата и место рождения, 
— адрес, семейное, социальное, имущественное положение, образование, профессия, доходы, 
другая информация (см. ФЗ-152, ст.3).
Например: паспортные данные, финансовые ведомости, медицинские карты, год рождения (для женщин), биометрия, другая идентификационная информация личного характера.
В общедоступные источники персональных данных (адресные книги, списки и другое информационное обеспечение) с письменного согласияфизического лица могут включаться его фамилия, имя, отчество, год и место рождения, адрес, абонентский номер и иные персональные данные (см. ФЗ-152, ст.8).
Персональные данные относятся к информации ограниченного доступа и должны быть защищены в соответствии с законодательством РФ. При формировании требований по безопасности систем персональные данные разделяют на 4 категории.
Читать дальше →
Total votes 82: ↑75 and ↓7 +68
Comments 112

Умей говорить «нет» и умей говорить «да»

Reading time 7 min
Views 272K

Умей говорить «нет»


Старший разработчик Валера работает в роли тимлида на большом и важном проекте для большого и важного заказчика. За окном шумит жаркое лето, по пыльным улицам бегут по своим делам прохожие, голуби крутят пируэты в необъятном казахстанском небе. Жизнь прекрасна – пилотный запуск намечен на конец ноября, команда набрала хороший темп и идет по графику. И тут Валера боковым зрением замечает, как на иконке Скайпа появилась желтая точка – кто-то о нем вспомнил и написал сообщение. Это руководитель проекта: «Зайди ко мне…»
Читать дальше →
Total votes 193: ↑183 and ↓10 +173
Comments 34

Серьезное проектирование серьезных сайтов. Часть 1. Аналитика

Reading time 13 min
Views 121K

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

Читать дальше →
Total votes 50: ↑43 and ↓7 +36
Comments 36

Как мы делали API для социальной сети (REST API для WEB)

Reading time 9 min
Views 55K
Я в своей работе часто сталкиваюсь с разными новыми концепциями, идеологиями и проектами. В основном из-за того, что участвую в разработке разных больших проектов, в каждом из которых встречаю что-то новое. Сегодня я хочу рассказать о своем опыте с REST API. Идеологии, которую мне как-то раз довелось применить при разработке одной социальной сети.

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

Хочу сразу оговориться: REST для меня — это, в первую очередь, идеология, к которой я отношусь трепетно и нежно. И, если кто-то не готов принять ее такой, какая она есть — не стоит читать дальше эту статью. У программиста всегда есть куча полезных дел, которыми можно заняться, пока приходит понимание необходимости писать узнаваемые интерфейсы и прятать за их простотой логику приложений любой сложности…

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

Теперь давайте по порядку.
Читать дальше →
Total votes 61: ↑49 and ↓12 +37
Comments 52

Теория памяти человека, зачатки ИИ

Reading time 3 min
Views 38K

Теория памяти человека, зачатки ИИ



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

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

Предположим, а может так оно и есть, все нейроны объединены в одни очень большой граф со сложной структурой. Данная структура сложна и не может работать хаотично, т.е. передаваемые импульсы передаются строго в определённом порядке, поэтому тут есть 2 варианта:

  1. Ребра графа имеют только положительные веса
  2. Ребра графа могут иметь, как положительные так и отрицательные веса

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

Что же касается первого случая, когда все ребра имеют положительные веса, т.е. головной мозг человека не поврежден. Тогда почему же человек не может вспомнить моменты из своего детства? Ответ прост: “Любое тело стремится к покою”, так же и наша с вами нейронная сеть старается оптимизировать свою работу. (Владельцам навигаторов должно быть знакомо, что прокладка маршрута, как раз таки строится на принципах работы графа, нахождения кратчайшего пути и т.д.). Мозг человека более изощренная система и его оптимизация заключается в разрыве связей с малыми весами, и построении новых связей с более высокими. (рис. 2). Таким образом объяснятся многочисленные разрывы и новые соединения нейронов. Чем больше узел имеет связей, тем легче вспомнить необходимую информацию.
image
Читать дальше →
Total votes 45: ↑26 and ↓19 +7
Comments 12

Учим рекрутеров нанимать программистов

Reading time 6 min
Views 155K
Сколько ни говори халва, во рту слаще не станет. Сколько ни пиши «мы ищем программиста», программистов больше не становится. Как же пытаются «заманить» на работу типичного программиста обычные рекрутеры?

Типичное рекламное объявление:



Звучит почти как объявление из анекдота «Нужны рабочие для работы на работе, оплата деньгами».
Подробности
Total votes 138: ↑110 and ↓28 +82
Comments 201

Little Printer — маленький облачный принтер

Reading time 2 min
Views 70K
Little printer — это миниатюрный термопринтер, который управляется со смартфона через облачный сервис Berg Cloud. Мне посчастливилось заполучить новинку, и я готов поделиться своими первыми впечатлениями. Скажу сразу — принтер очень милый, но он не лишен недостатков.



Читать дальше →
Total votes 85: ↑76 and ↓9 +67
Comments 68

Железо на службе у алгоритма

Reading time 14 min
Views 198K
Борис Бабаян о прошлом, настоящем и будущем вычислительной техники

Борис Бабаян
Каким представляется развитие вычислительной техники человеку, который уже более полувека занимается разработкой компьютерных технологий?

Мне удалось побеседовать на эту тему с Борисом Арташесовичем Бабаяном, директором по архитектуре компании «Интел».

Борис Бабаян известен как главный архитектор компьютерных вычислительных систем «Эльбрус-1», «Эльбрус-2» и «Эльбрус-3». Некоторые из его идей использованы в архитектуре Transmeta. В настоящее время Борис возглавляет разработку новой микропроцессорной архитектуры в компании «Интел».

Чтобы совсем покончить с формальностями, перечислю звания, степени и должности Бориса: член-корреспондент РАН, доктор технических наук, профессор, заведующий кафедрой «Микропроцессорные технологии» МФТИ, Intel Fellow, лауреат Государственной и Ленинской премий.

Дальнейшее повествование построено от лица Бабаяна. Мои скупые комментарии оформлены в виде врезок либо ссылок на интернет-страницы.

Поехали!
Total votes 210: ↑200 and ↓10 +190
Comments 138

Кодогенерация UML->Python (Django)

Reading time 3 min
Views 12K
Четыре года назад, устроившись на новое место работы, увидел учетную систему приличных размеров на python + wxWidgets + MSSql. Весь исходный код генерировался автоматически на основе UML диаграмм. Спустя несколько лет, я настолько проникся таким способом разработки, что и в собственных проектах на Django стал использовать автогенерацию кода.
Давайте в общих чертах рассмотрим, как выглядит процесс создания «кодогенерируемого» проекта?

Давайте
Total votes 55: ↑45 and ↓10 +35
Comments 45

Как установить 1С Предприятие 8.2 (релиз 8.2.16.368 от 05.10.12) на линукс CentOS 6.3 (статья, HowTo)

Reading time 38 min
Views 223K
Предупреждение: Никаких подробных инструкций не будет! Только последовательность действий, необходимые шаги и наводки. Это руководство только для опытных администраторов Линукс!

Примеры некоторых моих конфигов прилагаются...

Замечание: эта статья написана на основе экспериментов с 32-битным CentOS 6.3 (Для сервера необходимо использовать 64-битную ОС. Но так получилось, что на доступном мне для экспериментов железе 64-битный CentOS не установился.) Однако разницы для методики установки нет (32 vs 64bit) — она только в суффиксах дистрибутивных файлов: либо i686 (или i386), либо x86_64…

Содержание:


Читать дальше →
Total votes 72: ↑51 and ↓21 +30
Comments 34

Django на production. uWSGI + nginx. Подробное руководство

Reading time 7 min
Views 218K
Перед вами руководство по настройке production окружения для Django. Здесь будут описаны необходимые шаги по настройке Django, uWSGI и nginx. Руководство охватывает все три компонента — полный стек серверного ПО для веб-приложений.

Подразумевается, что вы используете Unix-подобную операционную систему и менеджер пакетов, эквивалентный aptitude. Найти эквивалент aptitude почти для любой операционной системы, в том числе и для Mac OS X, для вас не составит никакого труда.

Руководство написно для версий Django 1.4 или выше. Если вы используете более раннюю версию, то вам придется самостоятельно найти wsgi модуль для нее. Также вы заметите, что файловая структура проекта будет немного отличаться от представленной здесь.

Общая идея


Веб-сервер может по запросу отдавать пользователям файлы из своей файловой системы, однако он не может напрямую работать с Djangо приложениями. Веб-серверу нужен интерфейс, который будет запускать Django приложение, передавать ему запрос от пользователя и возвращать ответ.

Для выполнения этих задач был разработан Web Server Gateway Interface — WSGI — стандарт взаимодействия Python программ и веб-сервра.

uWSGI — одна из реализаций WSGI. В этом руководстве мы установим и настроим uWSGI для создания Unix сокета и взаимодействия с веб-сервером по протоколу WSGI.
Читать дальше →
Total votes 46: ↑37 and ↓9 +28
Comments 54

Простейший способ добавить WebSocket в Django

Reading time 4 min
Views 29K
Примечение переводчика: вебсокеты и Django — это довольно сложная тема, которая уже не раз поднималась на хабрахабре и основной идеей является написание параллельного бэкенда для вебсокетов. Автор же предлагает довольно лаконичное решение этой проблемы, которому правда еще предстоит проверка временем.

TL;DR — Я пришел к очень простому решению для работы с вебсокетами в Django. Все что вам нужно — это установить django-websocket-request, запустить скрипт, и теперь ваше приложение поддерживает вебсокеты! Это решение заставляет Django думать, будто он получает нормальный (в какой-то мере) HTTP-запрос, поэтому оно будет совместимо почти со всем вашим существующим кодом. Решение работает нормально как с Django Rest Framework, так и с обычными функциями-представлениями и представлениями, основанными на классах (Class Based Views).
Читать дальше →
Total votes 33: ↑26 and ↓7 +19
Comments 13

Программирование Древа Времен

Reading time 23 min
Views 33K


Введение


Прочитав статьи TimeCoder — «Путешествия во времени и программирование» [1, 2] я вспомнил свои скромные практические исследования в программировании, связанные с реализацией разветвляющихся миров. Однажды товарищ по работе подкинул мне интересную задачу, но решить я ее до сих пор не смог. Задача о том, как нагрузить станки на производстве. Даже не программисту было понятно, что нужен простой перебор, но я так и не смог придумать подходящую структуру данных для обеспечения вычисляющего алгоритма. Задача из реального мира, поэтому я решил попробовать реализовать в программе реальный мир в той части, который требуется для вычисления задачи. Каждый раз, когда в дальнейших вычислениях стоял выбор между двумя действиями — происходило «создание двух новых миров» с разным решением в каждом. Дальше каждый мир развивался своим путем.

Под катом я расскажу, как развивалась идея, и чем мне помог ерланг. Практика — критерий истины!
Читать дальше →
Total votes 55: ↑38 and ↓17 +21
Comments 18

Автоматизация приемочного тестирования Selenium + .NET Web Api + AngularJs

Reading time 5 min
Views 24K

Я расскажу как мы в компании работаем с приемочными тестами. В статье вас ждет ссылка на репозиторий с кодом и видео с примером работы.
Подробности
Total votes 30: ↑26 and ↓4 +22
Comments 29

Революционные компьютеры на подходе. Осталось научиться их программировать

Reading time 1 min
Views 48K
imageТак называется пост на гигаоме, который рассказывает о том, что скоро всё может сильно измениться.

Вкратце:
Команда учёных в Стенфорде создала новую плату, прозванную NeuroGrid, которая содержит 16 вычислительных ядер, способных эмулировать более миллиона нейронов и миллиарда синапсов. Они предполагают, что массовый выпуск таких устройств возможен при расходах около $400 за каждый юнит, что делает весьма привлекательным их применение во всевозможных устройствах, начиная с роботов, заканчивая искусственными конечностями, чтобы значительно повысить их вычислительные мощности, сократив при этом энергопотребление.
Читать дальше →
Total votes 74: ↑65 and ↓9 +56
Comments 52

Анализ дружеских связей VK с помощью Python

Reading time 6 min
Views 78K
Совсем недавно на Хабре появилась статья о реализации дружеских связей в ВКонтакте с помощью Wolfram Mathematica. Идея мне понравилась, и, естественно, захотелось сделать такой же граф, используя Python и d3. Вот, что из этого получилось.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 41

Хуки — это просто (часть 2)

Reading time 4 min
Views 19K
image

Некоторое время назад я писал вводную статью о хуках (что это, зачем нужно, Hello world). Статья задумывалась простой, минималистичной и, вроде бы, такой и получилась. Единственный упрёк, который я услышал в комментариях — «Зачем же брать библиотеку Microsoft Detours, которая для коммерческого использования стоит 10 000$ ?». Замечание справедливое. В этой статье я приведу тот же пример с использованием другой библиотеки ценой примерно в 20 раз меньше (что уже вполне себе в рамках разумного) — madCodeHook.

Для лучшего понимания данной статьи рекомендуется сначала прочитать первую часть.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Comments 12

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity