Мой список книг, которые мне хочется прочесть, изрядно вырос, спасибо топику “запасаемся на зиму”. Под катом вы обнаружите список книг, составленный по комментариям в том топике.
User
Запасаемся на зиму
1 min
22KКниги — пища для мозгов программиста. А художественные — десерт. Хорошая книга — как вкусное блюдо, которое хочется дочитать растянув удовольствие, испробовать снова и снова. Но есть куча книг, которые мы еще не нюхали и, возможно, никогда не попробуем, потому что нам их не посоветовали несколько человек.
У каждого есть одна-две любимые книги, которые могут понравится другим, поделитесь пожалуйста, заразите. Думаю многим будет интересно поставить в очередь «к прочтению» несколько новых. Давайте устроим «дегустацию» книг в формате: одна книга — один комментарий. Чтобы другие могли добавить в избранное (и оценить, и обсудить) каждую книгу по отдельности.
У каждого есть одна-две любимые книги, которые могут понравится другим, поделитесь пожалуйста, заразите. Думаю многим будет интересно поставить в очередь «к прочтению» несколько новых. Давайте устроим «дегустацию» книг в формате: одна книга — один комментарий. Чтобы другие могли добавить в избранное (и оценить, и обсудить) каждую книгу по отдельности.
+138
Иммунная система человека: биологический антивирус. Эвристические алгоритмы
4 min
9.4KДоброе время суток, уважаемое хабра-сообщество!
Это мой первый пост на Хабре, так что очень вас прошу, не судите слишком строго.
Я полагаю, все вы видели многочисленные рекламные ролики про уязвимый иммунитет, и все помнят школьные уроки, на которых рассказывалось про фагоцитов, пожирающих бактерий. Однако иммунная система организма — это сложнейший механизм, призванный оградить хозяина от любой опасности. А опасности могут быть очень разными. Я хотел бы попытаться рассказать о том, как иммунная система обнаруживает эти опасности, как она с ними борется, и как все это можно регулировать и использовать.
Это мой первый пост на Хабре, так что очень вас прошу, не судите слишком строго.
Я полагаю, все вы видели многочисленные рекламные ролики про уязвимый иммунитет, и все помнят школьные уроки, на которых рассказывалось про фагоцитов, пожирающих бактерий. Однако иммунная система организма — это сложнейший механизм, призванный оградить хозяина от любой опасности. А опасности могут быть очень разными. Я хотел бы попытаться рассказать о том, как иммунная система обнаруживает эти опасности, как она с ними борется, и как все это можно регулировать и использовать.
+152
Несколько цитат или Мечты Всегда Сбываются…
2 min
6KВыписал для себя несколько цитат. Но решил поделиться с теми, кто мечтает, стремится, воодушевляет себя и… сталкивается с непониманием и равнодушием близких и не очень людей. Дерзайте, друзья, не останавливайтесь. Человек может сделать все, что он задумал, реализовать самые безумные идеи. Нужно только идти вперед и не опускать руки. Эти цитаты можно распечатать и повесить на стену, перечитывая каждый день.
+16
О гриппе А (H1N1) с точки зрения программирования
6 min
17KTranslation
Учёные уже полностью дизассемблировали H1N1 и занесли его в вирусную базу NCBI Influenza Virus Resource. Там всё задокументировано в подробностях. Например, образец A/Italy/49/2009(H1N1) был обнаружен в носу 26-летней женщины, вернувшейся из Италии в США. Вот первые 120 бит его генетического кода.
atgaaggcaa tactagtagt tctgctatat acatttgcaa ccgcaaatgc agacacatta
Сколько бит убьёт человека?
По приблизительным подсчётам, общий размер исходников H1N1 составляет 26 022 бит, а если исключить служебные стоп-сигналы (указывают на окончание каждой белковой последовательности), то исполняемый код состоит примерно из 25 054 бит. Это число является приблизительным ещё и потому, что в вирусе присутствует механизм генерации избыточного мусора для маскировки от антивирусов.
Итак, получается около 25 килобит или 3,2 килобайта. Таков объём кода для программы, имеющей ненулевые шансы убить человека. H1N1 написан гораздо эффективнее, чем компьютерный вирус MyDoom размером около 22 КБ.
Очень унизительно, что меня могут убить всего 3,2 КБ генетических данных. Впрочем, в 850 МБ человеческого генома по любому должны быть дыры для парочки эксплойтов.
atgaaggcaa tactagtagt tctgctatat acatttgcaa ccgcaaatgc agacacatta
Сколько бит убьёт человека?
По приблизительным подсчётам, общий размер исходников H1N1 составляет 26 022 бит, а если исключить служебные стоп-сигналы (указывают на окончание каждой белковой последовательности), то исполняемый код состоит примерно из 25 054 бит. Это число является приблизительным ещё и потому, что в вирусе присутствует механизм генерации избыточного мусора для маскировки от антивирусов.
Итак, получается около 25 килобит или 3,2 килобайта. Таков объём кода для программы, имеющей ненулевые шансы убить человека. H1N1 написан гораздо эффективнее, чем компьютерный вирус MyDoom размером около 22 КБ.
Очень унизительно, что меня могут убить всего 3,2 КБ генетических данных. Впрочем, в 850 МБ человеческого генома по любому должны быть дыры для парочки эксплойтов.
+311
Microsoft DreamSpark по студенческому для украинских студентов и аспирантов
1 min
3.8KО данной возможности для российских студентов уже писали в декабре прошлого года. В этом сообщении есть такая фраза:
Очень рад за российских коллег по разгрызанию гранита науки, вряд ли такая же возможность появится в Украине в ближайшие два года, лично я успею закончить ВУЗ :)
Хочу обрадовать украинских студентов и аспирантов, так как программа DreamSpark по студенческому билету доступна в Украине!!!
Все, что нужно, это отправить скан вашего студенческого билета (для аспирантов — любой другой документ, который подтверждает ваш академический статус) на адрес GetDreamSparkUa@hotmail.com и вам будет выслан код доступа в программу.
Более подробно вы можете почитать по ссылке.
Очень рад за российских коллег по разгрызанию гранита науки, вряд ли такая же возможность появится в Украине в ближайшие два года, лично я успею закончить ВУЗ :)
Хочу обрадовать украинских студентов и аспирантов, так как программа DreamSpark по студенческому билету доступна в Украине!!!
Все, что нужно, это отправить скан вашего студенческого билета (для аспирантов — любой другой документ, который подтверждает ваш академический статус) на адрес GetDreamSparkUa@hotmail.com и вам будет выслан код доступа в программу.
Более подробно вы можете почитать по ссылке.
+7
Горячие клавиши Windows 7
2 min
150KПредлагаю вашему вниманию список хоткеев, использование которых делает работу с Windows 7 ещё более удобной (в скобках — альтернативный способ сделать то же самое):
Управление окнами
- Win+Home: Свернуть/развернуть все окна, кроме активного. («Потрясти» окно)
- Win+Space: Сделать все окна прозрачными. (Задержать курсор над небольшой кнопкой в правом нижнем углу экрана.)
- Win+Up: Развернуть активное окно на весь экран. (Перетащить окно вверх до упора, или дважды кликнуть по верхней рамке)
- Win+Down: Свернуть активное окно или восстановить размер, если оно развёрнуто на весь экран
- Shift+Win+Up: Развернуть окно по высоте (Перетащить нижнюю границу окна до таскбара)
- Win+Left/Right: Занять окном левую/правую половину монитора, или восстановить размер (Перетащить окно влево/вправо до упора)
0
Две простенькие задачи на Haskell (для начинающих)
5 min
18KTutorial
Приветствую всех пользователей Хабрахабр!
Я недавно начал изучать Haskell, и, немного освоив его, решил поделиться небольшим накопленным опытом. Конечно же, знания Haskell у меня не на таком уровне как у Darkus, поэтому две задачи, которые описаны ниже, ориентированны больше на новичков, но опытные пользователи возможно и поправят, и подскажут как лучше сделать. Эта не только моя первая статья на Хабрахабр, но и вообще мой первый туториал, который я когда-либо писал.
Я недавно начал изучать Haskell, и, немного освоив его, решил поделиться небольшим накопленным опытом. Конечно же, знания Haskell у меня не на таком уровне как у Darkus, поэтому две задачи, которые описаны ниже, ориентированны больше на новичков, но опытные пользователи возможно и поправят, и подскажут как лучше сделать. Эта не только моя первая статья на Хабрахабр, но и вообще мой первый туториал, который я когда-либо писал.
+17
Использование разделяемой памяти в Java и off-heap кеширование
6 min
58KНа прошлой неделе состоялся успешный эксперимент по запуску нового решения для download-сервиса. Один достаточно скромный сервер (2 x Intel Xeon E5620, 64 GB RAM) под управлением Java-приложения собственной разработки принял на себя нагрузку восьми Tomcat'ов, обслуживая более 70 тысяч HTTP-запросов в секунду общей пропускной способностью 3000 Mb/s. Таким образом, весь трафик Одноклассников, связанный с пользовательскими смайликами, обрабатывался одним сервером.
Вполне естественно, что высокие нагрузки требовали нестандартных решений. В цикле статей о разработке высоконагруженного сервера на Java я расскажу о проблемах, с которыми нам пришлось столкнуться, и о том, как мы их преодолели. Сегодня речь пойдет о кешировании изображений вне Java Heap и об использовании Shared Memory в Java.
Вполне естественно, что высокие нагрузки требовали нестандартных решений. В цикле статей о разработке высоконагруженного сервера на Java я расскажу о проблемах, с которыми нам пришлось столкнуться, и о том, как мы их преодолели. Сегодня речь пойдет о кешировании изображений вне Java Heap и об использовании Shared Memory в Java.
+63
Параметризованные запросы и производительность django orm
7 min
9.6KСтолкнувшись с существенными потерями производительности на использовании django orm, я стал искать выход из положения, рассматривая разные способы использования orm. Что у меня получилось — смотрите подкатом.
+20
Некоторые особенности Django, о которых хорошо знать заранее
5 min
14KDjango — это прекрасно. В самом деле: если писать о том, как много хорошего появилось в мире с приходом и развитием Django, то можно писать очень долго, и всё равно не рассказать обо всём. Лично я на данный момент постоянно использую Django уже четыре с половиной года, и всё это время Django становилась всё лучше и лучше.
И всё же в какой-то момент понимаешь, что в документации есть не всё. И тут варианты решения задач появляются разные — можно открыть исходники Django, можно посмотреть, что пишут по этому поводу на Stackoverflow и в других местах (часто очень помогают списки рассылки, а также официальный Trac), но ещё лучше — всё это вместе.
Давайте рассмотрим всего несколько примеров того, что может понадобиться в повседневной работе, но чего (пока что) не прочтёшь в официальной документации. Впрочем, если вы считаете, что нужно добавить ещё что-то — пишите, может быть, это действительно так.
+40
Свежий взгляд на примеси в JavaScript
8 min
19KTranslation
В этой статье я детально исследую примеси в JavaScript, и покажу менее общепринятую, но, на мой взгляд, более естественную стратегию «примешивания», которую, надеюсь, вы найдете полезной. Закончу я матрицей результатов профилирования, подводящей итог влиянию на производительность каждой техники. (Большое спасибо блистательному @kitcambridge за ревью и улучшение кода, на котором основан этот пост!)
Повторное использование функций
В JavaScript каждый объект ссылается на объект-прототип, из которого он может наследовать свойства. Прототипы — отличные инструменты для повторного использования кода: один экземпляр прототипа может определять свойства бесконечного числа зависимых сущностей. Прототипы могут так же наследоваться от других прототипов, формируя, таким образом, цепочки прототипов, которые более-менее повторяют иерархии наследования «классовых» языков типа Java and C++. Многоэтажные иерархии наследования иногда бывают полезны при описании природного порядка вещей, но, если первичным мотивом служит повторное использование кода, такие иерархии могут быстро стать искривленными лабиринтами бессмысленных субклассов, утомительных избыточностей и неуправлямой логики («кнопка — это прямоугольник или контрол? Вот что, давайте унаследуемButton
от Rectangle
, а Rectangle
может наследоваться от Control
… так, стоп…»).+45
Вычислительная геометрия, или как я стал заниматься олимпиадным программированием.Часть 1
8 min
131KЗдравствуйте, уважаемые хабравчане! Это моя вторая статья, и мне хотелось бы поговорить о вычислительной геометрии.
Я являюсь студентом уже 4 курса математического факультета, и до того как я начал заниматься программированием, я считал себя математиком на 100 процентов.
В конце первого курса мой преподаватель по информатике, который занимается олимпиадным программированием, обратил на меня внимание. Им как раз не хватало одного математика в команду. Так потихоньку меня начали приучать к олимпиадному программированию. Скажу честно, для меня это было очень сложно: для человека, который узнал слово Delphi на первом курсе. Однако мой преподаватель оказался очень грамотным специалистом и нашел хороший подход ко мне. Он начал давать мне математические задачи, который я сначала решал чисто математически, а уже потом писал код (с грехом пополам).
Мне очень нравится подход моего преподавателя: «разберись с этой темой, а потом расскажи нам, да так чтоб мы все поняли».
Итак, первой на самом деле важной задачей, с которой мне поручили разобраться, было именно вычислительная геометрия, необходимо было разобраться в типичных задач этого раздела информатики. И я решил подойти к этой задаче со всей ответственностью.
Я помню, как долго мучился с этими задачами, чтобы они прошли все тесты на сайте informatics.mccme. Зато теперь я очень рад, что прошел через все испытания и знаю, что же такое задачи вычислительной геометрии.
Немного истории
Я являюсь студентом уже 4 курса математического факультета, и до того как я начал заниматься программированием, я считал себя математиком на 100 процентов.
В конце первого курса мой преподаватель по информатике, который занимается олимпиадным программированием, обратил на меня внимание. Им как раз не хватало одного математика в команду. Так потихоньку меня начали приучать к олимпиадному программированию. Скажу честно, для меня это было очень сложно: для человека, который узнал слово Delphi на первом курсе. Однако мой преподаватель оказался очень грамотным специалистом и нашел хороший подход ко мне. Он начал давать мне математические задачи, который я сначала решал чисто математически, а уже потом писал код (с грехом пополам).
Мне очень нравится подход моего преподавателя: «разберись с этой темой, а потом расскажи нам, да так чтоб мы все поняли».
Итак, первой на самом деле важной задачей, с которой мне поручили разобраться, было именно вычислительная геометрия, необходимо было разобраться в типичных задач этого раздела информатики. И я решил подойти к этой задаче со всей ответственностью.
Я помню, как долго мучился с этими задачами, чтобы они прошли все тесты на сайте informatics.mccme. Зато теперь я очень рад, что прошел через все испытания и знаю, что же такое задачи вычислительной геометрии.
+61
Новые бесплатные онлайн курсы от Stanford
1 min
24KВ начале текущего учебного года Stanford организовал 3 бесплатных онлайн курса (основаные на трёх стационарных курсах Стэнфорда): Machine learning, Artificial intelligence и Introduction to Database. Все курсы идут с видео лекциями и домашними заданиями. Для курсов Artificial intelligence и Introduction to Database предусмотрены ещё и экзамены. После успешного окончания любого из курсов будет выслан сертификат (digital-signed pdf) от преподавателя.
И вот, были анонсированы ещё несколько онлайн курсов, которые будут стартовать в январе/феврале 2012 года.
У нас есть замечательный шанс послушать некоторые знаменитые Стэнфордские курсы, записывайтесь!
Update Спасибо recky, который заметил, что добавились ещё несколько курсов. Один из CS секции — по криптографии, и два из Entrepreneurship секции:
UUpdate продолжают радовать, новый доступный курс:
И вот, были анонсированы ещё несколько онлайн курсов, которые будут стартовать в январе/феврале 2012 года.
- Computer Science by Nick Parlante
- Natural Language Processing by Dan Jurafsky and Chris Manning
- Software Engineering for SAAS by Armando Fox and David Patterson
- Human-Computer Interfaces by Scott Klemmer
- Game Theory by Matthew Jackson and Yoav Shoham
- Probabilistic Graphical Models byDaphne Koller
- Machine Learning by Andrew Ng (тот же класс, что идёт сейчас)
У нас есть замечательный шанс послушать некоторые знаменитые Стэнфордские курсы, записывайтесь!
Update Спасибо recky, который заметил, что добавились ещё несколько курсов. Один из CS секции — по криптографии, и два из Entrepreneurship секции:
- Cryptography by Dan Boneh
- The Lean Launchpad by Steve Blank
- Technology Entrepreneurship by Chuck Eesley
UUpdate продолжают радовать, новый доступный курс:
- Design and Analysis of Algorithms I by Tim Roughgarden
+124
Учим bash-скрипты, пишем Quadronix
4 min
11KНа хабре уже много статей об играх на bash, это Шахматы, Xonix, Sokoban, Морской бой и даже Шутер с псевдо-3D графикой. Но во всех этих играх управление происходит с помощью клавиатуры. Мы же пойдём дальше и напишем игру на bash, управление в которой будет осуществляться с помощью мыши. А заодно разберём как сделать игру устойчивой к изменению размера терминала. Итак, напишем игру Quadronix.
+80
Чёрточки: только ли тире, минус и дефис?
4 min
178KОднажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева.
На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.
На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.
+265
Когда не нужна тригонометрия
4 min
53KПросматривая различный код по выводу на экран какой-нибудь даже примитивной графики, я заметил чрезмерную любовь некоторых программистов к тригонометрии. Часто код пестрит синусами, косинусами и арктангенсами там, где без них можно обойтись. Этим грешат даже хорошие программисты, которые способны спроектировать сложную систему, но почему-то не освоили вектора в объёме школьной программы. Буквально азов векторной алгебры хватает для решения многих насущных проблем. В этом топике я хочу провести краткий ликбез, напомнить основные действия с векторами на плоскости и в качестве примера решить две задачи без тригонометрии: поиск отражённого луча по падающему лучу и произвольно расположенному зеркалу, а также рисование наконечника стрелки. Если вы можете представить в голове рисование произвольно направленной стрелки без синусов и косинусов, смело пропускайте этот топик. Для остальных постараюсь объяснять попроще.
+199
7 шагов по переносу программы на 64-битную систему
20 min
39KАннотация
В статье рассмотрены основные шаги, обеспечивающие корректный перенос 32-битных Windows приложений на 64-битные Windows системы. Хотя статья ориентирована на разработчиков, использующих язык Си/Си++ в среде Visual Studio 2005/2008, она будет полезна и другим разработчикам, планирующим перенос своих приложений под 64-битные системы.
+99
Где погрызть гранит науки
4 min
28K Здравствуй, хабрасообщество. Я знаю, ты любишь халяву. А еще ты любишь учиться. Ведь так? А что может быть лучше для хабравчанина бесплатного образования? Вот и решил собрать специально для тебя подборку из ссылок, где можно набраться уму-разуму в области IT.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.
UPD. Переранжировал сайты. В категорию «Компьютерные науки» попали те сайты, которые можно внести более, чем в одну из нижеперечисленных категорий. Ранжировка производилась по большинству содержимого, то есть в некоторых сайтах, отнесенных к определенной категории, могут попадаться статьи не относящиеся к определенной, но они будут составлять абсолютное меньшинство
Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.
Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.
UPD. Переранжировал сайты. В категорию «Компьютерные науки» попали те сайты, которые можно внести более, чем в одну из нижеперечисленных категорий. Ранжировка производилась по большинству содержимого, то есть в некоторых сайтах, отнесенных к определенной категории, могут попадаться статьи не относящиеся к определенной, но они будут составлять абсолютное меньшинство
Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.
Англоязычные ресурсы
Компьютерные науки
OpenCourseWare MIT
Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.
+203
+32
Information
- Rating
- Does not participate
- Registered
- Activity