Pull to refresh
2
0
Никита Чудаков @giko

User

Send message

Повторное использование знаний

Reading time7 min
Views3K
Уже не первый раз натыкаюсь на обсуждения вопросов о том, кто и как изучает новые технологии и о том, как справится с тем огромном потоком «нововведений», которые ежегодно появляются в индустрии ПО. Однажды я уже отвечал на этот вопрос на кывт-е, и после очередного вопроса решил оформить эти мысли более структурированным образом.

Если оглядеться вокруг, то может сложиться впечатление, что отрасль разработки ПО шагает такими громадными шагами, что угнаться за ней нет никакой возможности. И если рассматривать всю отрасль в целом, то действительно это так и есть. Как-то сразу вспоминается старина Брукс со своим «Мифическим человеко-месяцем», когда он в заключении к своей книге пишет о том, как изменилась индустрия ПО в середине 90-х по сравнению с 50-ми годами. В те далекие годы (да, 90-е тоже уже далеки, так что уж говорить за эпоху зарождения индустрии сорока годами ранее) можно было прочитать все журналы (!), компьютерной тематики, которые выходили в свет. Сейчас же ежемесячно появляется десятки книг только по одной из популярных технологий, а количество статей просто не поддается счету.

Читать дальше →
Total votes 33: ↑27 and ↓6+21
Comments11

Лучший способ изучить Rails

Reading time5 min
Views200K
Доброго времени суток!

Предисловие


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

Введение


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

Однако, изучение Ruby on Rails является достаточно простым занятием. Это невероятно мощный фреймворк, который имеет огромное сообщество, продвигающее его вперёд. Итак, у нас возникает вопрос: какой способ изучить Rails является лучшим? Вот он — план занятий.
Читать дальше →
Total votes 83: ↑69 and ↓14+55
Comments118

Русская рулетка с использованием Kinect

Reading time1 min
Views2.3K


Один из программистов, работающих с Kinect, решил создать некий аналог «русской рулетки», только без пистолета. Никакого риска или угрозы для жизни здесь нет — просто компьютерная игра, или, если хотите, интересный программный эксперимент. Даже пистолета нет — вместо него используется рука играющего. Для «выстрела» достаточно направить два пальца себе в голову, и «нажать на курок», т.е., опустить большой палец.

Читать дальше →
Total votes 70: ↑61 and ↓9+52
Comments56

Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО

Reading time3 min
Views380K
Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?

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

Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
Читать дальше →
Total votes 236: ↑219 and ↓17+202
Comments182

Повышаем производительность программирования (ментальная карта)

Reading time3 min
Views20K
часы

Хочу поделиться с вами своими долголетними наблюдениями о том, как улучшить производительность труда программиста. Вот ментальная карта в виде картинки, вот — в виде mm файла, а ниже — она же в виде вложенных списков.
Читать дальше →
Total votes 66: ↑51 and ↓15+36
Comments58

Bootstrap 2.0 – HTML+CSS+JS UI фреймворк

Reading time1 min
Views60K

Вышла новая версия офигительного UI фреймворка от Twitter — Bootstrap 2.0 Для тех кто не в курсе что это, настоятельно рекомендую ознакомиться. Этот набор позволяет создавать отличные шаблоны сайтов за считанные часы (проверено на собственном опыте) на основе готовых элементов и экономить килотонны нервов на адаптации кода под разные браузеры.

Особенности Bootstrap:
  • Полный набор компонентов в виде стилей и анимаций поведения для элементов интерфейса
  • Поддержка возможностей HTML5, CSS3 (но при этом работает и в IE7!)
  • Поддержка идеологии 940-пиксельной сетки
  • Поддержка идеологии fluid-grid
  • Кросплатформенность — наборы стилей для десктопных и мобильных браузеров
  • Возможность кастомизации и добавления собственных стилей
  • Возможность добавлять jQuery плагины

Мастхэв для верстальщиков и проектировщиков интерфейсов!
Total votes 200: ↑186 and ↓14+172
Comments65

Multithreading in practice

Reading time9 min
Views35K
Нашел как-то на stack overflow вопрос (link).
Need to create java CLI programm that searchs for specific files matched some pattern. Need to use multi-threading approach without using util.concurrent package and to provide good performance on parallel controllers.
Перевод
Нужно написать консольную программу, которая ищет файлы по какому-то паттерну. Программа должна быть многопоточная, но нельзя использовать пакет util.concurrent. Требуется добиться максимальной производительности.


В общем идея в принципе была не сложная. Т.к. по условию нельзя использовать util.concurrent, то надо реализовать свой пул потоков, плюс написать какие-то таски, которые в этом пуле потоков будут крутиться.
Так же я не был уверен в том, что при многопоточном использовании IO будет увеличение производительности.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments17

Высокопроизводительный NIO-сервер на Netty

Reading time9 min
Views129K
Преамбула

Здравствуйте. Я являюсь главным разработчиком крупнейшего в СНГ сервера Minecraft (не буду рекламировать, кому надо, те знают). Уже почти год мы пишем свою реализацию сервера, рассчитанную на больше чем 40 человек (мы хотим видеть цифру в 500 хотя бы). Пока всё было удачно, но последнее время система начала упираться в то, что из-за не самой удачной реализации сети (1 поток на ввод, 1 на вывод + 1 на обработку), при 300 игроках онлайн работает более 980 потоков (+ системные), что в сочетании с производительностью дефолтного io Явы даёт огромное падение производительности, и уже при 100 игроках сервер в основном занимается тем, что пишет/читает в/из сети.

Поэтому я решила переходить на NIO. В руки совершенно случайно попала библиотека Netty, структура которой показалась просто идеально подходящей для того, чтобы встроить её в уже готовое работающее решение. К сожалению, мануалов по Netty мало не только на русском, но и на английском языках, поэтому приходилось много экспериментировать и лазить в код библиотеки, чтобы найти лучший способ.

Здесь я постараюсь расписать серверную часть работы с сетью через Netty, может быть это кому-то будет полезно.
Читать дальше →
Total votes 76: ↑75 and ↓1+74
Comments64

Подборка html/javascript/css инструментов и библиотек от SmashingMagazine

Reading time5 min
Views22K
Разработка вебинтерфейсов дело не самое легкое. Причем начать вроде бы несложно, а вот добиться совершенства поистинне проблематично. Уж очень многое необходимо учесть. Просто масса настроек и ньюансов, в которых легко запутаться и сделать что-то не так. К счастью, разработчики и дизайнеры склонны упрощать этот нелегкий труд и постоянно изобретают всяческие инструменты позволяющие сделать больше и лучше за то же самое время, а главное не погрязнуть в мелочах и состредоточиться на чем-то более важном.

Множество удобных инструментов, найденных командой популярного онлайн журнала SmashingMagazine, приводится под катом
Читать дальше →
Total votes 125: ↑123 and ↓2+121
Comments19

Быстрый старт для ExtJS back-end

Reading time5 min
Views14K

Проблема взаимопонимания


Представьте себе ситуацию: вы — фрилансер и работаете с Ext. С вами удалённо работает один (или несколько) разработчиков back-end. Работа идёт быстро и гладко. Но вот вот случилось так, что разработчик серверной части сменился. Если у нового коллеги есть опыт взаимодействия с Ext — всё замечательно. Но вот если человек впервые будет писать back-end для Ext или впервые будет писать для веба (такое тоже случается), то вам будет необходимо найти общий язык.
И вот тут могут начаться проблемы…
Придётся тратить время на простое объяснение протокола, объяснения как должен реагировать сервер на те или иные запросы. Чтобы избежать этого, я подготовил документ, описывающий все (ну или почти все нюансы стандартного для Ext протокола). Этот документ и представлен под катом.
Читать дальше →
Total votes 8: ↑5 and ↓3+2
Comments16

Разработка производительного игрового сервера на Netty + Java

Reading time5 min
Views54K
Piccy.info - Free Image Hosting

Как и обещал, привожу описание производительного игрового сервера на Netty, который использую в своих проектах.
Все описанное ниже не является истинной в последней инстанции, а всего лишь опыт применения технологий в реальных проектах.

Читать дальше →
Total votes 63: ↑57 and ↓6+51
Comments206

Паттерны ООП в метафорах

Reading time17 min
Views565K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Total votes 214: ↑201 and ↓13+188
Comments86

Лекториум записал почти тысячу лекций за год

Reading time4 min
Views57K
Дорогой Хабр!



У нас для тебя небольшой подарок. Мы тут работали-работали и вот чего сделали.
Сняли и опубликовали почти тысячу лекций по IT и математике.

UPD2 Помогите, пожалуйста, оперативно решить вопрос насчёт организации торрентов на php.

Читать дальше →
Total votes 340: ↑333 and ↓7+326
Comments183

Коротко о Lean на примере доставки пиццы

Reading time5 min
Views42K
В этой статье я поделюсь основными идеями, которые я вынес из тренинга по Lean Management, который прошел в середине декабря в Питере. Надеюсь, статья будет полезна тем, кто только хочет узнать, что такое Lean, а также тем, кто уже слышал что-то о Lean хочет получить общее представление о нем.

Т.к. идеи Lean применимы к функционированию различных систем массового обслуживания, я разберу их на примере компании, осуществляющей доставку пиццы.
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments17

Как учить английские слова

Reading time2 min
Views82K
Моя учительница по английскому языку когда-то говорила, что грамматика и аудиозаписи – это просто отлично, но без знания слов далеко продвинуться нельзя. Поэтому сегодня напишу небольшую заметку о том, как я учу английские слова.
Читать дальше →
Total votes 102: ↑90 and ↓12+78
Comments184

Как запустить стартап при ВУЗе

Reading time8 min
Views17K

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

Я хотел бы посвятить эту статью тому, зачем мы создали ООО совместно с СПбГЭТУ (ЛЭТИ) и что получили в итоге. Буду рад поделиться опытом, который, надеюсь, поможет реализовать ваши идеи.
Читать дальше →
Total votes 66: ↑59 and ↓7+52
Comments32

Правила личной эффективности от ЭД

Reading time21 min
Views66K
Заранее предупреждаю и извиняюсь, но оно того стоит: букаф многа.

Введение

В средней школе я был «круглым» двоечником, которого переводили в следующий класс только под значительным влиянием моего отца, в то время проректора ФПИ, довольно влиятельного (в личном общении) и властного человека.

В конце седьмого класса у меня встал выбор — идти в ПТУ или учиться дальше в школе. Все учителя, настаивали на том, что мне бесполезно учиться не то что в институте, но и в старших классах, в виду моей бездарности. Естественно, это мне не очень понравилось, и я решил стать лучшим в школе.

Попытка понять программу восьмого класса провалилась в виду отсутствия элементарных знаний предыдущих классов (начиная с второго-третьего), что не оставляло передо мной выбора, кроме как начать изучать все предметы по новой, самостоятельно.

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

Читать дальше →
Total votes 197: ↑155 and ↓42+113
Comments202

Кучи. Часть 1. Биномиальная куча

Reading time4 min
Views30K
Здравствуйте, Хабросообщество!

На хабре есть описание множества интересных структур данных, таких как деревья отрезков, дуча и т.п. Если Вам интересны сложные структуры данных, то добро пожаловать под кат!
Читать дальше →
Total votes 53: ↑45 and ↓8+37
Comments14

Моя система GTD. Безудержная простота

Reading time1 min
Views7.1K

Составные части


Нынешняя конфигурация упрощена до минимума.

По артефактам это:
HTC HD2 с Android-прошивкой (Cyanogen, если интересно)
PC
MLO для PC (+ RapidTaskEntry)
MLO для Android (+ виджет 4х4 на одном из экранов)
MLO CloudSync

Структура веток MLO
Сделать срочно
Less than 5 min.
Work (Project-1, Циклические задачи)
Non-work & Routine

Это всё. Этого достаточно.

Процесс


Добавление мысле-задач
  • появилась мысль о «нужно бы сделать вот это»
  • (если под рукой PC) Win-Q — окошко быстрого добавления задачи — текст задачи + срок (тоже текстом) + слово «remind» для добавления будильника на любое время — задача упала в Инбокс.
  • (если под рукой смартфон) виджет MLO — значок "+" — текст задачи — Инбокс.
  • поочерёдно запустить синхронизацию с MLO CloudSync, чтобы все задачи отобразились на всех устройствах


Это помогает не забывать ничего.

Планирование
  • в свободные минутки Инбокс «раскидывается по веткам» (контексты наследуются от родительских веток, это прописывается в настройках)
  • задачам прописываются даты и время


Теперь, когда даты, время и контексты прописаны, можно смело опереться на эту систему и быть увенным, что ничего не забудешь сделать.
Total votes 28: ↑11 and ↓17-6
Comments7

Сети для самых маленьких. Часть нулевая. Планирование

Reading time7 min
Views2.1M
Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.

Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.

Схема сети

Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
Читать дальше →
Total votes 104: ↑100 and ↓4+96
Comments134

Information

Rating
Does not participate
Location
Россия
Registered
Activity