Pull to refresh
-4
0
Евгений @afanasiy_nikitin

User

Send message

3 способа разработки

Reading time9 min
Views28K

Разработка, Направленная на Создание Мусора


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

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

Это работает так:
Читать дальше →
Total votes 76: ↑64 and ↓12+52
Comments39

Непрактичные сортировки – бессмысленные и беспощадные

Reading time7 min
Views101K
image

А что это мы всё об умных да об эффективных алгоритмах? А давайте эту тоскливую осеннюю пятницу развеем чем-нибудь контрпродуктивным!?

Представляю Вашему вниманию ТОП-5 самых нетрадиционных сортировок всех времён и народов.

Младопрограммистам такое полезно показывать в дидактических целях. Всех остальных как минимум позабавит.
Начнём
Total votes 95: ↑82 and ↓13+69
Comments54

Маленькие хитрости Java

Reading time4 min
Views270K
Я уже достаточно много лет занимаюсь разработкой на java и повидал довольно много чужого кода. Как это не странно, но постоянно от одного проекта к другому я вижу одни и те же проблемы. Этот топик — попытка ликбеза в наиболее часто используемых конструкциях языка. Часть описанного — это довольно банальные вещи, тем не менее, как показывает мой опыт, все эти банальности до сих пор актуальны. Надеюсь, статья пригодится многим java программистам. Итак, поехали:

new vs valueOf

//медленно
Integer i = new Integer(100);
Long l = new Long(100);
String s = new String("A");

//быстро
Integer i = Integer.valueOf(100);
Long l = 100L;//это тоже самое что Long.valueOf(100L);
String s = "A";


Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах оболочках примитивных типов, кроме случаев, когда вам нужно конкретно выделить память под новое значение. Это связано с тем, что все они, кроме чисел с плавающей точкой, от Byte до Long имеют кеш. По умолчанию этот кеш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кеша. Значение из кеша достается в 3.5 раза быстрее чем при использовании конструктора + экономия памяти. Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной. В случае, если ваше приложение очень часто использует целые типы, можно увеличить кеш для Integer через системное свойство «java.lang.Integer.IntegerCache.high», а так же через параметр виртуальной машины -XX:AutoBoxCacheMax=<size>.
Читать дальше →
Total votes 141: ↑126 and ↓15+111
Comments166

А знаете ли Вы, что возвращает .getClass()?

Reading time2 min
Views108K
Я думаю, почти любого Java разработчика когда-то спрашивали на собеседовании: «Какие есть методы у класса Object?»
Меня, по крайней мере, спрашивали неоднократно. И, если в первый раз это было неожиданностью (кажется, забыл про clone), то потом я был уверен, что уж методы Object'а-то я знаю;)

И каково же было мое удивление, когда спустя несколько лет разработки я наткнулся на собственное незнание сигнатуры метода getClass()

Под катом пара слов про Class, .class, .getClass и, собственно, сюрприз, на который я наткнулся.
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments56

Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»

Reading time6 min
Views114K
Краткая справка: в 1998 году Дерек Сиверс основал компанию CD Baby и превратил ее в крупнейшего онлайн-продавца независимой музыки. В 2008-ом вырученные от продажи компании $22 миллиона Дерек передал в благотворительный траст на нужды музыкального образования.
Речи Дерека на TED просмотрели более 5 миллионов раз, а его собственная книга занимала первую строку в чарте книг для предпринимателей на Amazon.
Сам себя Дерек считает «вечным учеником».


Я уже год использую этот метод обучения и могу сказать, что он – самый эффективный из тех, с которыми мне довелось столкнуться за 14 лет изучения программирования.
Читать дальше →
Total votes 74: ↑68 and ↓6+62
Comments45

7 популярных ошибок при подключении оборудования

Reading time4 min
Views26K


Не хотелось бы никого расстраивать, но даже самый “нарядный” ЦОД — с резервированием по схеме N в кубе и вообще ваш собственный — еще не гарантия бесперебойной работы оборудования: это самое оборудование, прежде всего, нужно правильно подключить.

“Спасибо, Кэп!” — снисходительно улыбнется мой читатель, а я ему отвечу: не стоит благодарностей, сходите лучше в ЦОД и проверьте еще раз ваши стойки. Да-да, те самые, с которыми сто лет как все в порядке. Вы не поверите, как часто именно с такими вот “беспроблемными” стойками и случается прискорбное. Я даже чеклист набросал.
Итак, что НЕ должно встретиться вам на этой послеобеденной прогулке:
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments4

Большой Калькулятор выходит из под контроля

Reading time19 min
Views40K
Calculator

Я хочу посвятить эту статью проблеме, о которой мало кто задумывается. Все шире и шире применяется моделирование различных процессов с помощью компьютера. Это замечательно, возможностью экономить время и материалы на бессмысленные химические, биологические, физические и прочие эксперименты. Обдув модели крыла на компьютере может в несколько раз сократить количество макетов, которое затем будет испытываться в реальной аэродинамической трубе. Численным экспериментам доверяют всё больше. Однако за торжеством численного моделирования никто не обращает внимания на рост сложности программ. В компьютере и к программам видят всего лишь инструмент для получения результата. Меня тревожит, что далеко не все знают и задумываются о том, что рост размера программы ведет к нелинейному росту числа ошибок. Опасно применять компьютер как просто большой калькулятор. Я и думаю, надо доносить эту мысль до других людей.
Читать дальше →
Total votes 95: ↑75 and ↓20+55
Comments72

Темное программирование

Reading time7 min
Views139K
imageПредлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать дальше →
Total votes 257: ↑203 and ↓54+149
Comments212

Семь навыков профессионального программиста

Reading time3 min
Views182K
Каждый год мы обучаем под свои проекты и набираем в команду студентов. Хантим, конечно, не всех. «Мы на работу ходим, а нам деньги плотют» — это точно не к нам. За «звездами» тоже не охотимся. Ищем в первую очередь тех, кто хочет расти, развиваться, становиться «звездой», а мы можем им в этом помочь.

Одна из проблем нашего высшего образования в том, что в вузах учат много чему, и алгоритмам, и языкам программирования, и ООП, и даже паттернам проектирования. Но я еще ни разу не встречал, чтобы в вузах учили работать работу. Лабораторки не в счет. Спихнул – и забыл! Возможно, просто не везло.

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

Итак, про семь навыков…

Читать дальше →
Total votes 111: ↑83 and ↓28+55
Comments68

Шпаргалка по графическому дизайну Android-приложений

Reading time1 min
Views21K
Разработчик и дизайнер Питер Ноэджл опубликовал «Шпаргалку по графическому дизайну для Android». В ней практически все, что вам необходимо знать для создания графических элементов приложений и оформления страниц в Google Play.

Тут описаны размеры, DPI, цвета, соглашения по именам и много другой важной информации.

Кроме того даются ссылки на все важные ресурсы, такие как стандартные гайдлайны и инструменты, шаблоны и заготовки для Photoshop.

Total votes 32: ↑23 and ↓9+14
Comments10

Мой путь к фрилансу

Reading time8 min
Views110K

Добрый день, уважаемые хабрачитатели! Сегодня я расскажу Вам о тернистом пути, который прошел я, чтобы стать фрилансером. Расскажу свою историю, историю программиста, который когда-то почти отчаялся от безысходности и не востребованности профессии программиста как таковой, но пережил этот непростой этап своей жизни.
И что же дальше?
Total votes 68: ↑47 and ↓21+26
Comments37

Как попасть в «золотой миллиард» или отрезвляющая статистика

Reading time1 min
Views204K
Рассматривая всевозможные списки Forbes, цены на квартиры в Москве или просто ценник нового Galaxy S4, легко впасть в уныние – кто-то же это все покупает. Причем в легкую, не парясь, не то что я. Проблема в том, что это все навязанная картина мира (не пугайтесь, пафоса в моем топике будет немного).

Существует такое понятие как «золотой миллиард». Это одна седьмая часть населения планеты, потребляющая большую часть ресурсов и обеспеченная базовыми удобствами. То есть еще раз, 6 миллиардов людей на планете живут хуже. Значительно хуже. Для того, чтобы понять, каков порог вхождения в этот «миллиард» можно воспользоваться сайтом статистики Global Rich List. Выбираем валюту, вводим либо годовой доход, либо накопленное состояние, и позиционируем себя на мировом финансовом поле.

Читать дальше →
Total votes 186: ↑166 and ↓20+146
Comments392

Рекомендательные системы: You can (not) advise

Reading time9 min
Views44K

Более полугода назад в поисках что посмотреть, я листал топ произведений. Это занятие повторялось уже много раз и успело надоесть — постоянно приходилось пропускать то, что я смотреть не хочу. Имхонетами раньше не пользовался, да и не доверял им из-за специфики искомых произведений. На сайте, где я производил поиски, была возможность создать свой список просмотренных произведений и выставить оценку, также были доступны оценки других пользователей. Тут мне в голову пришла гениальная идея, как оказалось позднее банальная, — используя оценки других пользователей делать рекомендации. Данная деятельность называется коллаборативной фильтрацией, а программа её реализующая — Рекомендательной системой(РС). Оглядываясь назад я понимаю, что совершил множество ошибок из-за недостатка информации и её труднодоступности в данной тематике, а что самое главное — сильно переоценил РС. В данном посте я сделаю обзор основных типов и алгоритмов РС, а также постараюсь передать часть своих знаний и опыта.
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments20

Хорошая беседа о борьбе с прокрастинацией

Reading time1 min
Views61K
Давно знаком и являюсь поклонником Яны Франк (ака Миумау в ЖЖ — www.miumau.lj.ru). Был на ее встрече позавчера, записал всю встречу на видео. Что мне понравилось: много дельных советов о борьбе с творческим кризисом, прокрастинацией в личном развитии и астенизацией. Все эти подходы применимы не только среди «художников», или тех чьи профессии считаются «творческими», но и вообще среди людей, которые хотят получать удовольствие от работы.

Вначале пару минут вступления-хождения.

Total votes 40: ↑25 and ↓15+10
Comments20

BYOD в контейнере: виртуализуем Android. Часть первая

Reading time11 min
Views17K
В пятницу на Хабре было опубликовано видео о том, как работает виртуализация на смартфонах Android. Ее разработали и довели до стадии прототипа в Parallels Labs два студента кафедры МиИТ Академического университета Санкт-Петербурга в рамках своей магистерской работы. Мне посчастливилось узнать, что у технологии под капотом, а также спросить участников проекта, какие задачи они решали, как преодолевали возникающие трудности и к чему в результате пришли. Обзор запланирован в двух частях. В этом посте будет короткий обзор существующих решений для виртуализации на Android, понятные схемы архитектуры нашего решения, короткое видео того, как все работает. Во второй части будет больше конкретики. Речь пойдет о виртуализации телефонной части смартфонов, звуковой подсистемы и системы ввода.

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

Начнем.
Total votes 20: ↑19 and ↓1+18
Comments3

Вышло 8-е издание OpenGL Programming Guide

Reading time1 min
Views38K
Сегодня совершенно случайно обнаружил, что книга OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition), так же известная как The Red Book, наконец-то вышла в свет. Лично для меня это издание особенно ценно тем, что в нем более не содержится информация об устаревшей части API, что больше не будет отвлекать от современных подходов. Так же, в нем целиком рассмотрен язык шейдеров OpenGL — GLSL, для которого ранее была выделена отдельная книга — OpenGL Shading Language (The Orange Book).
Total votes 47: ↑43 and ↓4+39
Comments10

Искусственный интеллект как совокупность вопросов

Reading time4 min
Views76K
image
Когда мы рассуждаем о сильном искусственном интеллекте, то мы понимаем, что это не изолированный вопрос, не вещь в себе, а вопрос ответ на который подразумевает объяснение всех явлений, которые связаны с мышлением человека. То есть, ответив на вопрос о природе интеллекта, мы неизбежно должны будем ответить на такие вопросы как:

  • Что есть информация?
  • Как мозг представляет знания?
  • Что такое язык?
  • Какова роль языка в мышлении?
  • Как совершаются поступки?
  • Как осуществляется планирование?
  • Какова природа фантазий и воспоминаний?
  • Что такое мотивация?
  • Какова природа эмоций?
  • Откуда берется многообразие эмоциональных оценок?
  • Что есть смысл?
  • Как рождается мысль и какова ее природа?
  • Что такое внимание?
  • Что есть любовь?
  • Что есть гармония и красота?

Читать дальше →
Total votes 57: ↑39 and ↓18+21
Comments55

Кто такой «системный администратор»

Reading time4 min
Views110K
Внезапно обнаружил, что amarao решил сделать серию статей о том, Как стать системным администратором. Но прежде чем решаться «стать» им, стоит выяснить, кто же это такой, и что он должен делать.


Читать дальше →
Total votes 72: ↑53 and ↓19+34
Comments169

Строим отчеты и анализируем групповые политики с помощью PowerShell

Reading time6 min
Views36K
Тема использования PowerShell для администрирования крайне актуальна, и на Хабре появляется все больше и больше статей на эту тему. Предыдущий перевод статьи Джеффри Хикса, который мы опубликовали в прошлую пятницу, вызвал волну интереса. И как тут не вспомнить замечательное выступление того же автора на TechEd North America 2012. Доклад, который Джеффри Хикс проводил вместе с Джереми Московицем (Jeremy Moskowitz), был посвящен анализу объектов групповых политик и формированию отчетов. Оригинальный материал (видео) здесь, мы же приводим крактко содержание + скрипты. В любом случае рекомендуем посмотреть само видео.

В фокусе доклада было два вопроса:
  1. Строит отчеты по групповым политикам
  2. Проводим анализ групповых политик

Подробности – под катом.
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments4

90 рекомендаций по стилю написания программ на C++

Reading time20 min
Views409K
От переводчика. Искал в интернете простой и легко применимый гайдлайн по написанию программ на C++. Мне понравился один из вариантов, и я решил его перевести и опубликовать. Если хабрапользователи хорошо встретят этот топик, могу перевести и другие связанные документы, а также гайдлайны по написанию кода от других компаний.

1 Введение


Настоящий документ содержит рекомендации по написанию программ на языке C++.

Рекомендации основаны на установившихся стандартах, собранных из различных источников, личного опыта, частных требований и потребностей определённых проектов, а также почерпнутых из источников (см. ниже).

Но для появления ещё одного списка рекомендаций, помимо указанных источников, есть несколько причин. Основная причина — их излишняя обобщённость, поскольку зачастую требуется задать частные правила (в особенности правила именования). Данный документ содержит комментарии, что делает его более удобным в использовании при проведении ревизий кода, чем другие уже существующие документы. К тому же, рекомендации по программированию обычно вперемешку содержат описания проблем стиля и технических проблем, что не совсем удобно. Этот документ не содержит каких-либо технических рекомендаций по C++, делая упор на вопросах стиля.
Читать дальше →
Total votes 181: ↑137 and ↓44+93
Comments213

Information

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