Pull to refresh
0
0
Максим Лапшинов @maksimla

User

Send message

Книги, которые должен прочитать Java программист: от новичка до профессионала

Reading time4 min
Views649K

Книги, которые должен прочитать Java программист: от новичка до профессионала


[Примечание переводчика: термины градации «профессионализма» оставлены англоязычные в связи с трудностью их адекватного перевода на русский и несовпадением с привычными Junior-Middle-Senior-Lead. Перевод достаточно вольный — если знаний языка хватает, то лучше читать оригинал, как и советует автор. Оба языка для меня не родные, так что про ошибки сообщайте в личку — исправим. Здесь и далее в квадратных скобках примечания переводчика]

Я заметил, что в последние месяцы я рекомендую одни и те же книги как новичкам, так и опытным разработчикам. Поэтому я решил составить список этих книг. Они составили мне неплохую компанию в процессе моего роста от новичка до сегодняшнего уровня (какой-бы он не был :) )
Читать дальше →
Total votes 90: ↑77 and ↓13+64
Comments77

Взлом старой каптчи сайта Хабрахабр

Reading time9 min
Views47K

Введение



В данной статье кратко рассказывается о процессе взлома captcha используемой ранее при входе на сайт Хабрахабр.
Целью работы является применение знаний на практике и проверка сложности каптчи.
При разработке алгоритма использован Matlab.

Читать дальше →
Total votes 177: ↑173 and ↓4+169
Comments118

Обучение на курсе CS50x

Reading time4 min
Views62K
Добрый день.

Прежде чем записаться на курс Harvard CS50x я сначала пролистал поиск, выискивая отзывы о нём. С удивлением обнаружил, что результатов не так уж и много. Надеюсь эта краткая информация поможет другим страждущим понять, надо ли им это.

Итак, что же нам говорит сайт edX об этом курсе:
CS50x is Harvard College's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. As of Fall 2012, the on-campus version of CS50x is Harvard's largest course.

В переводе на русский это значит следующее: на курс можно записаться всем желающим, даже если у вас за спиной 3 класса церковно-приходской школы. В процессе изучения будут использованы C, PHP, JS, SQL, CSS и HTML. В отличие от курса MIT 6.00X, где требуется High School algebra, при поступлении на CS50x никаких требований к математике не выдвигается, что порадовало, так как с высшим образованием у меня отношения не сложились.

Пара слов о преподавателе курса, Дэвиде Малане

Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments26

Как начать писать игры

Reading time9 min
Views348K
Оригинал: Starting out on Game Programming

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

Вы только что закончили ваш первый курс по С++ и хотите начать делать игры. Кто-то указал вам на этот сайт и вы, возможно, поэкспериментировали немного с руководством. Вы изучили несколько лаконичных примеров, но не нашли руководства о том, как сделать целую игру. И на то есть причина.

Руководства хороши для обучения чему-то шаг за шагом, например тому, как перемещать изображение точки по экрану. Для того чтобы собрать игру воедино, вам нужны навыки решения возникающих проблем, приобретаемые лишь с опытом. Это не то, чему можно научиться из руководств. Лучший способ научиться делать игры — это начать их делать.
Дальше
Total votes 134: ↑119 and ↓15+104
Comments51

Онлайн-инструменты для кодеров

Reading time2 min
Views284K
Онлайн-сервисы становятся все популярнее, постепенно усложняя функционал и улучшая интерфейсы. В этой подборке представлены онлайн-инструменты для кодеров.

Cloud9


«Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.

Читать дальше →
Total votes 204: ↑191 and ↓13+178
Comments55

Сайт для программиста [на Node.js]. Просто. Стильно. Бесплатно

Reading time5 min
Views93K

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

Меня аккаунт Вконтакте, и даже в Фейсбуке в качестве своего сайта не устраивает. Слишком много лишнего, навязанный формат и прочие неудобства.

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

Если вы тоже хотели бы иметь сайт, который полностью контролируете, на котором всё именно так, как вам хочется, но всё никак руки не доходили разобраться и сделать, то эта статья для вас.

Некоторые знания HTML и JS вам пригодятся. Опыт работы с Node.js не обязателен.

Читать дальше →
Total votes 131: ↑90 and ↓41+49
Comments96

Олимпиада по Linux-администрированию 27-го ноября

Reading time3 min
Views17K


Через неделю, 27 ноября, начнётся первый тур олимпиады по администрированию ОС Linux.

Участвовать могут студенты и молодые специалисты. Первый тур дистанционный, второй — очный в офисе КРОК в Москве. Призы — ежемесячная стипендия, оплата официальных курсов Red Hat и последующих экзаменов RHCSA/RHСЕ. Первый тур — открытые вопросы и тесты, второй тур — попытка починить свой «поломанный» компьютер и поднять на нём нужные сервисы.

Я занимаюсь организацией Олимпиады, поэтому ниже — детали про то, как это проходит, зачем КРОК это делает, пара советов и пара типичных ошибок участников.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments42

+1 к эволюции фрилансера

Reading time4 min
Views150K
image


Собрал небольшой список пунктов эволюции фрилансера, каждый +1 сделает вас продуктивнее или дороже на рынке.
Список взят из моей жизни, я уже как год практикующий фрилансер, до этого никогда не покидал России, за последний год посетил 9 стран, в следующем году надеюсь посетить ещё 20.

1) Никогда ничего не забывайте. Для этого каждую мелкую задачу я всегда добавляю в miniplan.ru и я всегда получу в нужный момент письмо или смску, все совершенно бесплатно.
2) Самоосознание. Когда работаешь без прямого начальника, когда зарплата не два/раз в месяц, нужно максимально осознать свою жизнь, понимать как вы работаете, как вы получаете деньги, забиваете ли вы на работу, к чему стремитесь. Если в обычной жизни можно плыть по течению то фриланс вам приоткрывает двери осознанной жизни.
3) Отдыхайте. Работодателя нет и вы сами должны заботиться о своем отпуске, сделайте так чтобы его было больше, чем если бы вы работали по прямому найму. Не забывайте о перерывах в работе. Отдых сделает вас продуктивнее или абсолютно расслабит и тут вам поможет самоосознание.
Читать дальше →
Total votes 135: ↑108 and ↓27+81
Comments140

Генетический алгоритм на примере бота Robocode

Reading time13 min
Views47K


Когда писалась эта статья, хабрапоиск по словосочетанию «Генетический алгоритм» выдавал благородную пустоту. Однако недостаточный уровень *вырезано цензурой* отодвинул дату публикации, и вот только сейчас после позорного нудливого попрошайничества с моей стороны эта статья получила возможность показать себя миру. За этот промежуток времени успели выйти в свет как минимум три (столько мне на глаза попалось) статьи на подобную тему, и, вполне вероятно, что-то из написанного ниже вы прочитаете не впервые. Таким людям я предлагаю не хмурить носики от очередной попытки неопытного юнца научно-популярно объяснить ГА, а проходить к следующему экспонату ко второй части, где описывается создание на основе ГА бота для программистской игры Robocode. Это, по последним сведениям разведки, еще не встречалось на хабре.

Часть первая. Жизнь и творчество генетического алгоритма.


Начнем издалека. Есть некоторый набор задач, которые требуют решения. Наша цель — найти действия, которые смогут преобразовать Дано (начальные условия задач) в Ответ (целевое состояние).

Если ситуация простая, и решение такой задачи можно явно посчитать из условий при помощи этих ваших матанов, то и славно, тут и без наших премудростей все хорошо, нас наебали, все расходимся. Например, при решении квадратного уравнения ответ (значения x1, x2) получаются из начального условия (коэффициентов a, b, c) путем применения формулы, которую мы все учили в школе. А что делать в более печальном случае, когда нужной формулы в учебнике нету? Можно попробовать с помощью мозгового штурма решить одну из задач. Аналитически. Численными методами. Силой отчаянного перебора функций. Через некоторое время послышатся мечтательное студенческое «хоть бы оно само решилось». Ага, тут-то мы и вылезаем из-за занавесок. Итак, цель — написать программу, которая бы находила функцию (программу), получающую на вход исходные данные и возвращающую годные циферки. Сила метапрограммирования, в бой!

пучина невежества
Total votes 115: ↑108 and ↓7+101
Comments28

Зачем Maxima школьнику и студенту? или «Задача о невесомом медведе»

Reading time5 min
Views20K
В данном посте я хочу убить сразу нескольких зайцев.
Во-первых, еще раз рассказать людям о свободной системе компьютерной алгебры Maxima.
Во-вторых, найти вес «мистического зайца» из несложной задачки для школьников

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

Читать дальше →
Total votes 41: ↑30 and ↓11+19
Comments71

MongoDB для разработчиков

Reading time3 min
Views38K
Всемирно известная компания 10gen, разрабатывающая опенсорсную базу данных MongoDB, представляет уникальный курс по MongoDB для разработчиков. Вы научитесь всему необходимому для создания вашего приложения на основе MongoDB. Курс позволит вам овладеть навыками установки, работы с JSON, созданием схем, запросов, сохранения данных, индексации и работы с языковыми драйверами. В процессе курса вы будете строить платформу для блога, основанного на MongoDB.
Shut up, and take my money!
Total votes 79: ↑75 and ↓4+71
Comments41

27+ ресурсов для онлайн-обучения

Reading time5 min
Views969K

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

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

Читать дальше →
Total votes 174: ↑163 and ↓11+152
Comments68

Отечественные авторские блоги для гиков

Reading time4 min
Views20K
Бывает, что Хабр прочитан, мировые новости изучены, новая книга не начата и хочется какой-нибудь качественной технической информации — заметок от программистов, ссылок на интересные новости от западных коллег и просто гиковских штук. Как быть в этом случае? Можно обратиться к западной технической блогосфере, к счастью, там есть из чего выбрать. Но и отечественная блогосфера с программистским и гиковским уклоном способна порадовать самого придирчивого читателя. Под катом собраны ссылки на самые любопытные (по мнению автора) блоги российских IT-деятелей. На Хабре уже было что-то похожее, но без описания и четкой тематики. Приведенные здесь блоги будут интересны скорее программистам.
Читать дальше →
Total votes 110: ↑76 and ↓34+42
Comments15

Аналог игры «Жизнь» — Evo

Reading time5 min
Views27K
Приветствую вас, хабражители!

Недавно прочитал статью про игру Жизнь, и вспомнилось мне, что я в мае этого года начинал писать свой проект подобной направленности. Только вот интерес к нему за рутиной работы быстро угас, хотя написано было немало. И сейчас, вдохновлённый этой статьёй, я взял этот проект с пыльной полки и добавил несколько фич, о которых расскажу далее.
Вкратце, мой вариант имеет следующие условия:
  • жизнь развивается на поле 256*256 клеток;
  • на поле могут размещаться объекты трёх типов: живность, пища(назовем её травой) и камень (препятствие);
  • живность представляет собой фактически модифицированную машину Тьюринга, если точнее, то это больше похоже на Автомат с магазинной памятью, т.е. живность является «процессором», выполняющим свой «генетический» код;
  • живность имеет возможность совершать определенные действия (двигаться, есть, размножаться (пока только клонированием, мутации будут со дня на день, скрещивание в перспективе)), отдавая соответствующие команды;
  • наступив на траву, живность её вытаптывает;
  • для поглощения еды надо дать команду «Ешь в этом направлении!», находясь в соседней клетке;
  • живность имеет память, что позволяет строить циклы, условия и т.п., т.е. полная по Тьюрингу (поправьте меня, если не прав!), объем памяти неограничен;
  • живность может складывать и вычитать значения в уме, разрядность ограничена одним байтом;
  • существует возможность реализации генетических алгоритмов (пока не реализовано).
Кому интересны подробности, прошу под кат!

Читать дальше →
Total votes 54: ↑46 and ↓8+38
Comments61

Battle City на unity за 1 день?

Reading time2 min
Views61K

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

Когда мне позвонил менеджер этого проекта и предложил попробовать провести подобное мероприятие на unity, я задумался.
С одной стороны лично мне все казалось просто — 5-7 часов на простенькую игру и все готово, с другой стороны люди, которые участвуют в роли учеников, должны будут впервые использовать этот движок. Возможно им вообще впервые придется попробовать себя в роли создателя игр. Если интересно, чем закончился данный эксперимент, прошу под кат
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments27

Ещё раз об изучении языков (часть 2)

Reading time13 min
Views136K

Во второй части статьи (первая, в основном теоретическая часть, находится тут), посвященный моему личному опыту изучения иностранных языков и советам начинающим это не всегда простое дело, мы разберем первый этап освоения языка: он нулевого уровня до уровня продвинутого туриста, способного разговаривать на базовые темы и понимать тексты на данном языке при помощи томика словаря.
Я уверен, что многое из того, что я описываю, уже не раз писалось в том числе и на Хабре: в конце концов, я не изобрел ничего нового. Однако для полноты картины я стараюсь описывать все то, чем я сам пользуюсь при изучении языка в надежде, что подробное описание поможет заинтересованным читателям Хабрахабра более точно воспроизвести мой подход.
Читать дальше →
Total votes 56: ↑52 and ↓4+48
Comments37

Микрофриланс для программистов без лишних хлопот

Reading time2 min
Views49K
Стартап Bountify — это нечто среднее между StackOverflow и фриланс-биржей. Принцип работы очень прост — заказчик публикует задачу или вопрос и вносит предоплату от 1 до 250 долларов. В течение недели любой желающий может предложить решение. Вознаграждение достаётся тому, кого выберет заказчик. Если предложено несколько примерно равноценных вариантов, или кто-то сделал ценные замечания и дополнения к решению-победителю, заказчик может дополнительно вознаградить тех, кто внёс свой вклад. Если решения нет, деньги уходят на благотворительность.

Ключевой гарантией качества является открытость — в отличие от фриланс-сервисов, обсуждение вариантов проходит публично, любой может указать на ошибку или улучшить решение. Открытость работает и в обратную сторону: в профиле заказчика можно посмотреть, насколько щедро он раздаёт дополнительные вознаграждения участникам дискуссии.
Читать дальше →
Total votes 55: ↑48 and ↓7+41
Comments29

Итоги 21-го конкурса IOCCC

Reading time4 min
Views23K
Объявлены победители 21-го международного конкурса обфусцированного кода на C. Как обычно, участники удивили способностью втиснуть совершенно невероятные вещи в программы до 4096 байт. Чтобы получить максимальное удовольствие, организаторы конкурса рекомендуют смотреть версию без спойлеров и пытаться понять по коду программы, что она делает.

Например, что делает такая программа?
             main(l
        ,a,n,d)char**a;{
    for(d=atoi(a[1])/10*80-
   atoi(a[2])/5-596;n="@NKA\
  CLCCGZAAQBEAADAFaISADJABBA^\
  SNLGAQABDAXIMBAACTBATAHDBAN\
  ZcEMMCCCCAAhEIJFAEAAABAfHJE\
  TBdFLDAANEfDNBPHdBcBBBEA_AL\
   H E L L O,    W O R L D! "
     [l++-3];)for(;n-->64;)
        putchar(!d+++33^
             l&1);}

Ответ
Правильно, печатает карту мира.



И не просто печатает, но ещё отмечает на карте место (символ " или # с координатами, которые можно указать при запуске).
Кстати, это «лучшая маленькая программа» на IOCCC 1992 года.

Другие спойлеры
Total votes 59: ↑56 and ↓3+53
Comments27

Опыт участия в Rails Rumble

Reading time3 min
Views4.5K
В прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.

Надо сказать, что кроме выпитого ящика пива и прочего фана мы получили действительно хороший опыт.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments22

Information

Rating
Does not participate
Location
Вильнюс, Литва, Литва
Date of birth
Registered
Activity