Pull to refresh
0
@bstructureread⁠-⁠only

User

Send message

Почему копирайт неконституционен

Reading time5 min
Reach and readers3.9K
Disclaimer. Я обращаю внимание, что я не даю в данный момент никаких оценочных суждений и не предлагаю никаких решений. Я просто излагаю факты.

Я уже как-то писал, что копирайт нелегитимен. Это не всё. Копирайт ещё и неконституционен, т.к. противоречит базовым принципам права.

Как довольно продвинутое интернет-сообщество, Хабр, в принципе, поддерживает копирайт, т.к. автор должен иметь какой-то способ монетизации собственного труда. Логика здесь примерно следующая: автор создаёт авторский экземпляр произведения. На этот момент он имеет все возможные права по распоряжению им. В частности, он имеет право заключить договор с издателем о передаче этого экземпляра и своих прав за какие-то материальные блага. Издатель производит копии экземпляра и продаёт их конечным потребителям, также заключая некоторый договор с каждым из них.

Сейчас система обычно работает так: экземлпяры продаются поштучно без права дальнейшего распространения; те, кто нарушают условия договора — распространяют экземпляры дальше, за деньги или бесплатно — пираты.

Т.о., на первый взгляд, отношения автора, издателя и покупателей сводятся к обычным гражданско-правовым договорам купли-продажи (ну или «аренды», как стало модно делать в последнее время). На самом деле, это не так.

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

С периферии в центр — зачем?

Reading time3 min
Reach and readers1.7K

Введение.



Временами на Хабре обсуждается тема образования. Много сказано о столичных и региональных ВУЗах, высказано мнений, сломано копий. Но я хочу поговорить о близком к этой теме явлении — о течении студентов и специалистов с регионов в столичные образовательные учереждения, то есть о том, почему мы бежим (или пытаемся сбежать) с малой родины в поисках лучшей работы и образования.
Итак, подробности под катом

Быстрый старт с Google Test

Reading time2 min
Reach and readers79K

Google Test — это фреймворк от Google для юнит-тестирования кода на С++. Общей архитектурой он слегка напоминает общепринятые boost::test и CppUnit, хотя слегка отличается в деталях (как по мне — в лучшую сторону). Большая обзорная статья этого фреймворка уже как-то пробегала на Хабре, но нынче она в каком-то побитом состоянии (код не отображается), да и кажется мне слишком сложной для начала работы. Поэтому я коротко опишу «Hello world» на Google Test, указав на несколько потенциальных проблем, с которыми вы можете столкнуться, используя Google Test при разработке под Visual Studio.
Читать дальше →

Новогоднее хабра-соревнование по программированию-2013 (C++)

Reading time3 min
Reach and readers47K
Все мы слышали поговорку: как новый год встретишь — так его и проведешь. Оливье в сторону!

Рассчитывать на 5 часов адского программирования в праздник было бы негуманно, потому задача всего одна и она весьма лапидарна:
Программа должна прочитать из стандартного потока ввода целое число N (от 1 до 230), и напечатать сумму простых чисел меньших либо равных N.
Побеждает тот, кто напишет самое быстрое решение, проходящее все тесты (хотя-бы один неправильный ответ — и решение отклоняется). Скорость решения оценивается на тестах в районе верхней границы допустимого диапазона N (но не ровно 230).

Победитель получает всеобщее признание, сотни кармы и приятное чувство что он порвал всех на Хабре. Долгие годы молодые поколения разработчиков будут восхищаться его кодом, а девушки — чепчики в воздух бросать. По меньшей мере первые 4 read-only пользователя будут приглашены на Хабр.
Читать дальше →

Сообщение голубя было расшифровано?

Reading time2 min
Reach and readers58K


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

Однако, содержимое послания было зашифровано на случай перехвата, что вполне возможно при таком виде связи. На листе бумаги были напечатаны слова «Голубиная почта» и 27 рукописных блоков кода. Благодаря освещению в СМИ, к загадке сообщения было привлечено внимание любителей криптографии со всего мира, но разгадать шифр так и не удалось. Специлисты относились скептически к возможности взломать код без шифроблокнота или специальной литературы.

Как сообщает Британская широковещательная корпорация, код всё же был расшифрован, и сделал это Горд Янг, историк из Питерборо. С помощью заметок воздушных наблюдений своего прадяди, который служил в 92 эскадроне Королевского лётного корпуса, код был расшифрован в несколько минут. Янг считает, что запись отослал 27-летний сержант Уильям Стотт, стрелок из Ланкашира, который высадился в Нормандии с почтовыми голубями, чтобы доложить о положении немецких вооруженных сил. Сержант Стотт был убит несколько недель спустя, его тело было предано земле в Нормандском военном захоронении.
Читать дальше →

Java собеседование. Коллекции

Reading time10 min
Reach and readers926K
С недавнего времени у меня появилась настойчивая мысль, что профессиональное развитие сильно замедлилось и это хочется как-то исправить. Да, читаю книги, слушаю курсы, но в то же время приходит и понимание того, что возможно пришло время сменить работу, здесь вроде как все изучено, плавно уходим в рутину. Данная мысль сподвигла меня на рассылку своего резюме в несколько компаний — лидеров рынка. После прохождения собеседования в 3 из них, я решил, как водится внести свои 5 копеек в освещение обширной темы собеседования, а именно технических вопросов по Java коллекциям, с которыми приходится сталкиваться. Да, знаю, читатель скажет: «коллекции — избитая тема, сколько можно», но часть из приведенных ниже вопросов, я задавал своим знакомым разработчикам, которые занимают именно позиции разработчиков («крепких середнячков», по меркам недалекой от Москвы глубинки, которые уверенно справляются со своей работой на практике, а вот в теории скажем так есть пробелы, потому, что работа не требует решения каких-то нетривиальных задач, да и потому что не всем это интересно — изучать как внутри работает структура данных), вызывало растерянность. Думаю, что рассмотренный материал будет не очень интересен разработчикам выше уровня Junior (я попрошу их комментировать, дополнять и критиковать изложенный здесь материал), а вот Junior`ы уверен, найдут в этой статье интересное для себя.
Читать дальше →

Срочно обновляем RVM (Ruby Version Manager)

Reading time2 min
Reach and readers17K
Совсем недавно во многих ruby-блогах, сообществах, да и на хабре, было написано немало постов о том что RVM дурно влияет на производительность MRI-версии ruby (официальный интерпретатор языка) по причине того что установщик не учитывает оптимизации компилятора GCC. Конечно для этого недуга были «лекарства», но применять их приходилось ручками, причем довольно-таки прямыми. Так вот, спешу всех обрадовать что в последних версиях RVM (начиная с версии 1.17.0) ситуация изменилась, и конечно же в лучшую сторону, теперь Вы снова можете полностью положится на менеджера версий ruby. Все что Вам нужно сделать — это обновиться до последней версии.
Читать дальше →

Я не знаю Си

Reading time4 min
Reach and readers53K
Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.
Читать дальше →

edX этой осенью: MITx / HarvardX / BerkeleyX

Reading time1 min
Reach and readers8.5K
На Хабре много раз писали про edX — замечательный образовательный проект, инициатором которого в свое время стал MIT. Это возможность проверить себя, получить новые знания и все это в кругу квалифицированных преподавателей и студентов со всего мира.

Весною некоторые Хаброжители даже сдали финальный экзамен и остались крайне довольны.

Этой осенью к MIT и Harvard присоединился Berkeley с, как мне кажется, крайне позитивным курсом CS169.1x: Software as a Service — с главным героем в лице Ruby on Rails.



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

10 мифов современного образования

Reading time4 min
Reach and readers270K

Миф 1. Университет не должен давать профессию — университет должен учить студента учиться.


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

Недаром, когда идет набор абитуриентов, все вузы кричат: «наши выпускники возглавляют банки, заводы и работают на самых престижных должностях», «мы вас научим тому-то и тому-то, да вообще, всему что только может понадобится».
image
И вот на пятом курсе подходит очередной выпускник к лектору и говорит:
— Профессор, я иду на красный диплом, но не могу найти работу.
— Задача университета — научить человека учится.
— ??
Читать дальше →

Костыльный программист

Reading time5 min
Reach and readers51K
Автор: Джоэль Спольски. Оригинал.

Статья посвящена оверинженирингу и тем, кто предпочитает старые костыльные решения лишь потому, что они очень просты. Перевод под катом.
Читать дальше →

Лига защиты интернета создаёт сеть экстренного оповещения

Reading time2 min
Reach and readers3.7K
19 июля начала работу Лига защиты интернета. Среди её членов — Mozilla, WordPress, Reddit, Electronic Frontier Foundation и многие другие организации. Цель Лиги — защитить интернет от посягательств на его свободу со стороны бюрократических организаций и монополий. В основе тактики Лиги — приёмы, отработанные во время борьбы против SOPA и PIPA. Члены Лиги создают сеть экстренного оповещения, которая будет задействована в случае появления очередной угрозы свободе и независимости интернета. Эта сеть будет оперативно и согласованно распространять информацию об угрозе и о том, как её предотвратить. Например, это может быть призыв написать обращение в органы власти, присоединиться к петиции, бойкоту или забастовке. Вместо разрозненных действий отдельных энтузиастов, интернет должен реагировать на любые нападки мгновенно и организованно. Присоединиться к лиге может любой желающий.


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

Искусство убивать драконов

Reading time3 min
Reach and readers5.4K
В последнее время на Хабрахабре много беседуют об учебном процессе. По этому поводу я хочу напомнить вам одну старую, многим известную притчу, процитировав её вон оттуда:
Когда-то давным-давно в маленькой горной деревеньке жил мальчик. Он был хорош собой, ловок и очень умён. Он быстро учился всему, чему могли его научить взрослые, живущие в той же деревне: он давно умел изготавливать посуду из глины, ткать, ловить рыбу, был лучшим охотником и самым искусным наездником.

Однажды с самой высокой горы спустился в деревню старец, который сказал ему:

— Ты научился всему, что могут тебе дать твои родные. Пойдём со мной, и я научу тебя искусству убивать драконов. Это очень древнее искусство, и оно требует много времени, сил и желания. Немногие способны освоить его. Но и ты — необычный мальчик.

И мальчик согласился.

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

И вот в один прекрасный день он понял, что овладел искусством убивать драконов. И тогда он обошёл все леса Земли, все поля и страны в поисках дракона и нигде не нашёл его. Тогда он решил подняться на самую высокую гору и осмотреть Землю с её высоты. Он потратил на путь к этой горе и на подъём ещё несколько лет своей жизни, но, и поднявшись на гору, он нигде не увидел дракона. И тогда он понял, что на Земле ужé давно не осталось ни одного дракона.

И тогда он спустился с горы в маленькую горную деревню, где нашёл самого умного, самого талантливого мальчика, который давно ужé узнал всё, что могли ему сообщить жители его деревни, и стал учить его искусству убивать драконов.
Читать дальше →

Транзакционная память и многопоточность

Reading time9 min
Reach and readers19K

На фото: Blue Gene / P в Аргоннской национальной лаборатории

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

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

Есть и хорошие новости: в процессорах следующей модели Blue Gene / Q, которые будут питать 20-петафлопсный суперкомпьютер Sequoia, строящийся компанией в настоящее время для Ливерморской национальной лаборатории, реализована поддержка транзакционной памяти не на программном, а аппаратном, уровне. При успешных испытаниях эта технология докажет, что масштабируемое параллельное программирование может быть простой задачей (и в отсутствии параллельных алгоритмов) — это, в свою очередь, изменит ландшафт вычислений. Так как большинство исследований до сегодняшнего дня проводились именно в области реализации STM на уровне ПО, чипы BlueGene/Q позволят реально оценить разницу в скорости работы двух принципиально разных архитектур: HTM (hardware transactional memory) и традиционной STM.

Интересно? Читаем дальше

Обратная связь

Reading time1 min
Reach and readers5.3K
На днях, в поисках путей утечки паролей игроков Diablo III, разработчики из AVG Technologies попали в забавную ситуацию. В процессе отладки кода найденного трояна на экране появилось окно встроенного чата с вопросом на китайском: «Что вы делаете? Зачем изучаете мой троян? Что вы от него хотите?»


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

Рандомизированные деревья поиска

Reading time8 min
Reach and readers61K

Не знаю, как вы, уважаемый читатель, а я всегда поражался контрасту между изяществом базовой идеи, заложенной в концепцию двоичных деревьев поиска, и сложностью реализации сбалансированных двоичных деревьев поиска (красно-черные деревья, АВЛ-деревья, декартовы деревья). Недавно, перелистывая в очередной раз Седжвика [1], нашел описание рандомизированных деревьев поиска (нашлась и оригинальная работа [2]) — настолько простое, что занимает оно всего треть страницы (вставка узлов, еще страница — удаление узлов). Кроме того, при ближайшем рассмотрении обнаружился дополнительный бонус в виде очень красивой реализации операции удаления узлов из дерева поиска. Далее вы найдете описание (с цветными картинками) рандомизированных деревьев поиска, реализация на С++, а также результаты небольшого авторского исследования сбалансированности описываемых деревьев.
Читать дальше →

Использование классов в JavaScript

Reading time11 min
Reach and readers39K
Методы создания классов на JavaScript уже не раз обсуждались по всему рунету и на хабре в том числе, я решил найти немного иной подход к созданию классов, приближенный к реальным классам. Одно важное отличие от других реализаций описанных во многих статьях, это возможность создавать аксессоры (setter's/getter's). Которые будут работать не только в современных браузерах, но и в долгоживущем IE ниже 9-ой версии. Об этом читайте ниже.

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

Javascript: ООП, прототипы, замыкания, «класс» Timer.js

Reading time19 min
Reach and readers97K
Здравствуйте программисты начинающие, законченные, а также все сочувствующие. Как известно, ничто не познается так хорошо, как на собственном опыте. Главное, чтобы опыт был полезный. И в продолжении этой простой мысли я хочу предложить заняться несколькими полезными делами сразу:
  • Побеседовать на тему «ООП с человеческим лицом».
  • Разобраться с прототипами в javascript, коротко и сердито!
  • Вспомнить, что «замыкание» это не только ценный мех… удар током.
  • Написать на javascript класс Timer — этакий планировщик событий для запуска анимаций, событий, любых функций.
  • Весело провести время!

Предупреждение! Если вы не ждете от статьи ничего веселого… то ошибаетесь. Людям с пониженным чувством юмора читать… еще более рекомендуется! Ну-с, приступим…
Читать дальше →

Три полезных совета по Rails консоли

Reading time3 min
Reach and readers4.3K
Топик является вольным переводом статьи на 37signals.

Вчера я копался в документации к Rails API и заметил несколько полезных функций rails консоли, которых не видел ранее. До этого было множество публикаций об irb и Rails, но я надеюсь, что из этой вы почерпнете для себя что-то новое. Приведенные примеры сделаны с использованием Basecamp Next on Rails версии 3.2.3.
Читать дальше →
1

Information

Rating
Does not participate
Registered
Activity