Search
Write a publication
Pull to refresh
1
0
Владимир Пестов @KozzyKoder

User

Send message

Перекресток семи дорог, или о выборе пути для программиста

Reading time3 min
Views92K
Очень часто можно услышать несколько типичных высказываний.
— Я не хочу работать на дядю, поэтому я ушел во фриланс.
— Не хочу работать на дядю, иду в свой бизнес. Ушел за будущую долю в стартап.
— Открыл свое дело.

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

Если вы нашли себя — поделитесь в комментариях!
Читать дальше →

ORM или объектно-реляционный проектор

Reading time6 min
Views24K
Сегодня мы предлагаем вашему вниманию отрывок из книги Сергея Тарасова «Дефрагментация мозга. Софтостроение изнутри», которая готовится к выходу в нашем издательстве.

Сокрытие базы данных или как скрестить ёжа с ужом


Упомянув один из крупнейших столпов современного софтостроения — мир ООП, нельзя обойти вниманием и другой — мир реляционных баз данных. Я намеренно вставил прилагательное «реляционные» применительно ко всем основным СУБД, хотя ещё в 1970-х годах такое обобщение было бы неправомерным.

Тем не менее, именно реляционным СУБД удалось в 1980-х годах освободить программистов от знания ненужных деталей организации физического хранения данных, отгородившись от них структурами логического уровня и стандартизованным языком SQL для доступа к информации. Также оказалось, что большинство форматов данных, которыми оперируют программы, хорошо ложатся на модель двумерных таблиц и связей между ними. Эти два фактора предопределили успех реляционных СУБД, а в качестве поощрительной премии сообщество получило строгую математическую теорию в основании технологии.

Читать дальше →

Изменение кода программы во время ее выполнения на примере Common Lisp

Reading time8 min
Views13K

Введение


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

Так давайте попытаемся написать программу, которую проблематично будет создать на других языках. Как следует из названия статьи, эта программа будет редактировать собственный код по мере своего выполнения. Для ее создания я использую Common Lisp, а точнее его интерпретатор SBCL.
Читать дальше →

13 причин не быть управленцем

Reading time12 min
Views465K
Так уж сложилось, что последние несколько лет я занимал самые разнообразные руководящие должности в полудюжине компаний, занимающихся разработкой программного обеспечения разного рода. Довелось побывать и тимлидом, и менеджером проекта, и группы проектов, руководителем отдела и руководителем технического направления; подопечных бывало от двух до ста пятидесяти человек, да и размеры компании варьировались от трёх до двухсот тысяч работников. Неизменным оставалось только одно: чисто управленческая работа, постепенный и окончательный отход от технических задач.

А сейчас, в период между Рождеством и Новым Годом, когда особенно обострена склонность к углублённой рефлексии, приходит понимание того, что, знай я некоторые «инсайдерские» подробности управленческой деятельности заранее – сделал бы совсем другой выбор лет эдак семь назад.

Вот поэтому и родился этот немного хаотичный и очень разнокалиберный список моментов, которые очень хотелось бы передать куда-то обратно, примерно в 2005 год – дайте знать, если кто-то вдруг уже научился это делать! А пока, может быть кто-то найдёт некоторые из перечисленных ниже пунктов не до конца очевидными, или даже полезными для себя; было бы приятно осознавать, что удалось помочь кому-то сделать более осознанный выбор профессии – или просто о чём-нибудь важном задуматься.
Итак, поехали

Работа и жизнь гика с проблемами концентрации внимания

Reading time8 min
Views221K
Каждый — гениален. Но если вы будете судить рыбу по ее способности лазать по деревьям,
она всю жизнь проживет с верой в свою глупость.

Альберт Эйнштейн

Лень — это привычка отдыхать до того, как ты устанешь.

Жюль Ренар


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

Решительно сократить количество проблем можно, придерживаясь следующих рекомендаций:
  1. В голове держать не больше трех-пяти вещей за раз, объединив действия в большие смысловые блоки.
  2. Раз и навсегда выбрать решение по ежедневному набору мелочей: вносить дела к календарь, проверять утюг и т.п.
  3. Разложить все вещи по своим местам и поддерживать заведенный порядок.
  4. Дублировать необходимые и часто используемые вещи; разложить их по всем углам.
  5. Умело пользоваться календарем, мобильником и другими инструментами интернет-века.
  6. И самое главное: НЕ ОТВЛЕКАТЬСЯ ПО МЕЛОЧАМ!
Интересно? Читаем дальше!

Имеет решение и эффективно решается, в чем разница?

Reading time4 min
Views19K
Доброго времени суток, хабралюди! Частенько математики останавливаются на существовании решения, и получается что-то подобное.

В гостинице поселились инженер, физик, и математик. У каждого в номере возникает пожар.
Инженер выбегает в коридор, видит на стене пожарный шланг, хватает его, открывает воду, вбегает в номер и заливает очаг возгорания.
Физик, быстро прикинув объем горючих веществ, температуру пламени, теплоемкость воды и пара, атмосферное давление и т.п., наливает в стакан из графина строго определенное количество воды и заливает огонь этой водой.
Математик выскакивает в коридор, видит на стене огнетушитель, и, обрадованно воскликнув: “Решение существует!”, спокойно возвращается в номер.


А о том, какие грабли попадаются на пути «до победного конца», я расскажу под катом.
Читать дальше →

Практический опыт. Как наконец-то начать заниматься своим здоровьем?!

Reading time8 min
Views288K
Я давний подписчик блога «GTD» (уст. Учись работать).

С 2008 года я активно читал статьи на Хабре и в Интернете и пробовал:
— вставать в 5:00 утра
— делать зарядку
— обливаться холодной водой
— бегать по утрам
— питаться правильно (особенно зачитывался вегетарианством)
— вести свои делало системе GTD (Things установлен на всех гаджетах :)
— выключать компьютер вовремя (хотя бы до 23:00)
— ну и конечно, сделать 100 отжиманий и кубики на животе…

Ммм… Вы уже наверное догадались через сколько дней заканчивались порывы моей души и все возвращались на круги своя? :) Я думаю не ошибусь, если скажу, что таких как я очень и очень много.

Что изменилось в январе 2012 года?

Рано… в начале кратко обо мне:
— Возраст: 26 лет;
— Семейное положение: женат (с февраля 2012), детей пока нет;
— живем отдельно в Санкт-Петербурге.
— Работаю в офисе 5 дней в неделю с 8:30 до 17:30.
— Иногда задерживаюсь, но не часто.

Если Вы считаете, что опыт Вам не подойдет… Ваше право, но мы же понимаем, что оправдания всегда можно придумать? Я их придумывал лет 5. Я знаю о чем говорю.

Так все-таки что произошло в январе 2012?

Места распространения Android приложений

Reading time4 min
Views77K

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

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

LLST: Новая жизнь Little Smalltalk

Reading time10 min
Views15K

Всем привет! С прошедшим концом света и с наступающими праздниками :)
В качестве подарка сообществу Open Source, а так же любителям антиквариата, мы (совместно с товарищем humbug) решили выложить нашу последнюю исследовательскую разработку.

Предлагаем вашему вниманию с нуля переписанную на C++ реализацию виртуальной машины, совместимую с Little Smalltalk. На данный момент написан код виртуальной машины и реализованы базовые примитивы. Humbug написал серию простых тестов, которые, тем не менее, помогли обнаружить проблемы и в оригинальной версии VM. Реализация бинарно совместима с образами оригинального LST пятой версии.

Месяц работы, 300+ коммитов. А что получилось в итоге, можно узнать под катом.
Читать дальше →

Вместо конца света. Приложения победили браузер

Reading time2 min
Views26K
Может это и есть конец света? :) Но победитель долгих дискуссий о том, что удобно пользователям — браузер или отдельные приложения, кажется стал очевидным.

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

image 
Читать дальше →

Новшества node-webkit версии 0.3.6

Reading time3 min
Views15K
Roger Wang 14 декабря объявил о выходе новой версии движка node-webkit созданного в недрах Intel Open Source Technology Center мощного сочетания WebKit и Node.js, позволяющего создавать кросс-платформенные графические приложения методом веборазработки на языках HTML, CSS и JavaScript.

Новая версия имеет номер 0.3.6 и выглядит вот как:

[скриншот]

По сравнению с версией 0.3.0, которую я обозревал в октябре, за последние два месяца случались только небольшие изменения, заслуживающие не более чем последней цифры в номере версии node-webkit. Зато изменений этих накопилось порядочно.

Прежде всего нетрудно заметить, что окна утратили «округлый» и «синенький» вид, похожий на Google Chrome, а вместо того вновь обрели общесистемный вид и форму. (На иллюстрации я привожу вид окна в Windows XP.) Также вернулся значок в заголовке окна. (Для сегодняшней демонстрации я поместил туда значок сайта Хабрахабра.)

Вот список остальных новшеств этой версии (по сравнению с 0.3.0):

Читать дальше →

«Я не понимаю»

Reading time2 min
Views91K
Я заметил, что самые взрослые и опытные разработчики, с которыми мне доводилось работать, входят в число тех, кто чаще всего говорит «Я не понимаю», когда они выслушивают техническое объяснение. Так бывало с коллегами в Fog Creek и Khan Academy.

С одной стороны, это противоречит здравому смыслу. Разве не должны «сеньоры» уже знать всё? Но это вполне логично. Те, кто больше других уверены в своих способностях, являются также людьми, способными признать, что не вникли полностью в суть чего-либо. Молодые разработчики допускают, что их непонимание — их же собственная вина. Они не хотят отвлекать остальных из-за своих воображаемых промашек.

Молодым разработчикам стоит попробовать осознать, насколько часты непонимания вопроса. В большинстве стеков технологий уже пройдена черта, после которой удержать в голове весь код невозможно, особенно, в компаниях, которые набирают сотрудников. И если эта граница пересечена, всё чаще можно слышать о новом фреймворке рендеринга Javascript, или последнем конвейере MapReduce, или баге в скрипте развертывания, или плане нового шаблона кэширования, а тихий голосочек в вашей голове уже хочет сказать: «Постойте… мне это не понятно.»
Читать дальше →

Тренды в образовательной среде (памятка для вуза)

Reading time6 min
Views78K
Добрый день!



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

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

Итак, сначала немного пафоса.
Читать дальше →

DivShot — онлайн-сервис прототипирования Bootstrap

Reading time1 min
Views75K
DivShot — отличный новый инструмент для работы с Twitter Bootstrap. С помощью него создавать прототипы интерфейсов с использованием популярного CSS-фреймворка стало до безобразия просто.

Читать дальше →

Веб-сервис как система реального времени

Reading time7 min
Views15K
В начале декабря в Санкт-Петербурге при партнерстве Mail.Ru Group прошел полуфинал чемпионата мира по программированию ACM ICPC. В рамках чемпионата я встречался с участниками и рассказывал о том, как сделать веб-сервис системой реального времени; а сейчас хочу поделиться своим докладом на Хабре.

Говоря о системе реального времени, мы представляем атомную станцию, самолет или нечто подобное, где от скорости реакции информационной системы зависит жизнь людей. Если в системе реального времени команда будет тормозить 10 секунд из-за сборки мусора, последствия могут быть более чем плачевными. Реакция должна быть моментальной, причем за гарантированное время.

При работе веб-сервиса, конечно, жизнь человека не зависит от того, насколько быстро он открыл письмо в почте, но требования к веб-сервису почти такие же. Еще 15 лет назад, когда пользователь кликал на ссылку, он ожидал реакции 10 секунд; для медленного интернета того времени это было нормально. Современный интернет – это широкие каналы, быстрые компьютеры. У пользователей все работает быстро, и они ждут от сервисов того же.

Когда пользователь куда-то кликает, он ожидает моментально получить реакцию на свой клик. Что такое моментально? Для человека комфортной задержкой считается время отклика порядка 200 миллисекунд, хотя на самом деле человеческий глаз различает время около 10 миллисекунд. Веб-сервис должен реагировать на действия пользователя не более чем за 200 миллисекунд — чем меньше, тем лучше.

Итак, современный веб-сервис, по сути, должен быть системой реального времени. Как сделать так, чтобы он отвечал этому требованию, я расскажу на примере Почты Mail.Ru.
Читать дальше →

Курс «Введение в финансовую инженерию»

Reading time2 min
Views19K
В онлайн-университете Хекслет вслед за первым курсом стартовал новый – Введение в финансовую инженерию.



Финaнcoвaя инжeнepия – cpaвнитeльнo нoвый тepмин, и являeтcя oдним из вoзмoжныx пepeвoдoв aнглийcкoгo тepминa «quаntitаtivе finаnсе». Дeйcтвитeльнo, «инжeнepия» – лучшee cлoвo для oблacти знaний, кoтopaя зaтpaгивaeт финaнcoвую мaтeмaтику и пpoгpaммиpoвaниe.

B этoм куpce зaтpoнуты тpи тecнo cвязaнныe тeмы:

  • Пpинципы функциoниpoвaния финaнcoвыx pынкoв – eгo учacтники, мexaнизмы взaимoдeйcтвия, инcтpумeнты и тexнoлoгии paбoты.
  • Финaнcoвaя мaтeмaтикa – мeтoды пpимeнeния мaтeмaтики в финaнcoвыx pacчeтax.
  • Пpoгpaммиpoвaниe – кaк пиcaть пpoгpaммнoe oбecпeчeниe, кoтopoe умeeт paбoтaть нa финaнcoвыx pынкax.


Записаться на курс / Посмотреть лекции


Читать дальше →

Внутреннее устройство ASLR в Windows 8

Reading time7 min
Views24K
ASLR — это Address Space Layout Randomization, рандомизация адресного пространства. Это механизм обеспечения безопасности, который включает в себя рандомизацию виртуальных адресов памяти различных структур данных, чувствительных к атакам. Расположение в памяти целевой структуры сложно предугадать, поэтому шансы атакующего на успех малы.

Реализация ASLR в Windows тесно связана с механизмом релокации (relocation) исполняемых образов. Релокация позволяет PE-файлу загружаться не только по фиксированной предпочитаемой базе. Секция релокаций в PE-файле является ключевой структурой при перемещении образа. Она описывает, какие необходимо внести изменения в определенные элементы кода и данных для обеспечения корректного функционирования приложения по другому базовому адресу.
Читать дальше →

Интроверт, программист, интроверт-программист

Reading time3 min
Views74K

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

По-моему, понятие интровертности точно также порой трактуется неверно. А в связке программист-интроверт рождаются совсем уж бредовые идеи.

Давайте разбираться

Forbes: Что ждет cloud computing в 2013 году?

Reading time4 min
Views6.9K
Каждый год в это время аналитики, предсказатели и эксперты, все, как заодно, пытаются составить прогноз о перспективах развития технологий в предстоящем году. И, ни для кого не секрет, что именно облачные вычисления стали наиболее обсуждаемой и горячей темой этого года. Облако уже громко заявило о себе в сфере бизнес технологий. IT-директора, вендоры и аналитики, как один, пытаются успеть определить, что за всем этим стоит и к чему нас приведет.

Именно с этой целью я отобрал некоторые из предсказаний аналитиков на 2013 год и выбрал среди них те, которым, скорее всего, суждено сбыться, если, конечно, этого уже не произошло.
Итак, далее приведены наиболее вероятные прогнозы:
Читать дальше →

MongoDB for Developers and DBA

Reading time5 min
Views17K
Заканчиваются курсы по MongoDB для разработчиков и архитекторов баз данных от 10gen, компании разработчика MongoDB.
Финальный экзамен отправлен на проверку и хотелось бы поделиться впечатлениями от курса и полученной информации, рассказать о плюсах и «минусах» MongoDB.

Читать дальше →

Information

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