Pull to refresh
3
0

Пользователь

Send message

Несколько вещей, о которых стоит помнить программисту в возрасте

Reading time11 min
Views128K
Если вы из тех, кто «работал ещё Там-То!» и «делал ещё То-То!», а сейчас счастливо отдыхаете на пенсии — эта статья не для вас. Просто спасибо за труд и примите мои поздравления. Но если же вы, как и я, даже став немного старше всё ещё ощущаете страсть к программированию, радуетесь виду кода и не можете устоять перед желанием написать ещё что-нибудь, тогда продолжайте читать.

Большую часть моей жизни я проработал разработчиком программного обеспечения. Но однажды, уже под конец моего четвёртого десятка, я попался на удочку предпринимательской наживы. Я тогда поверил, что создавать собственные компании — это круто. Я нашел немного венчурного капитала и организовал пару небольших стартапов для реализации собственных идей. И вот я стал, как мне казалось, нормальным CEO и не таким уж плохим менеджером. И, хотя я уже не писал код лично, я мог нанимать хороших программистов, управлять качеством проектов и внедрением инноваций.

Я смирился с мыслью, что мой лучший код уже написан — в прошлом. Мне было уже 54 года (немало!) и я, вероятно, уже не мог писать код так же хорошо, как и раньше. Кто знает — может быть у меня уже начала отказывать память, ну или я просто выучил всё, что был способен в жизни выучить. Мой настрой подкреплялся наблюдениями окружающей меня реальности. Все новые технологии выглядели для меня чудаковато. Я ненавидел Node.js. Я считал все фреймворки для веб-разработки ужасными. И я сетовал на то, что классические способы разработки ПО разрушились и превратились в набор клише, которые нынче впариваются под умными названиями типа Agile или «экстремальное программирование». Я скучал за днями, когда люди писали спецификацию на будущее ПО, программировали, а затем тщательно тестировали его. И когда в каждой статье не было тысячи жаргонных словечек.
Читать дальше →
Total votes 121: ↑117 and ↓4+113
Comments134

Собираем VirtualBox под Windows

Reading time40 min
Views37K

 Введение


Как известно большинству пользователей Windows-версии VirtualBox (далее — VB, не путать с Visual Basic), в релизе 4.3.14 разработчики этой программы добавили дополнительный механизм защиты, называемый «hardening» (что можно перевести как «упрочнение»), который привёл к многочисленным проблемам совместимости VB с антивирусами, драйверами крипто-модулей и даже отдельными обновлениями самой Windows, в результате чего виртуальные машины попросту отказываются запускаться. В лучшем случае пользователю приходится ждать около месяца, пока проблемная программа, о которой он сообщит разработчикам, окажется учтена в следующем релизе VB. В худшем случае придётся либо удалять конфликтующую программу (или системное обновление), либо откатывать VB до версии 4.3.12 — последней, в которой не было этой защиты. Многочисленные предложения к разработчикам о добавлении пользовательского списка исключений или опции, отключающей защиту целиком, остаются без внимания. Единственный внятный ответ с их стороны звучит так: «не хотите защиту — компилируйте из исходников сами». Что ж, придётся этим заняться.

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

Я заинтересован
Total votes 23: ↑23 and ↓0+23
Comments32

Опыт переезда для работы программистом в Берлин (часть 1)

Reading time7 min
Views76K
Добрый день.

Представляю на суд общественности материал о том, как я за четыре месяца получил визу, переехал в Германию и нашел там работу.

Считается, что для переезда в другую страну нужно сначала долго искать работу удаленно, потом, в случае успеха, ждать решения по визе, и лишь после паковать чемоданы. Я решил, что это далеко не оптимальный способ, поэтому пошел другим путем. Вместо того, чтобы искать работу удаленно, я получил так называемую «визу на поиск работы», въехал в Германию, нашел здесь работу и уже после подал документы на Blaue Karte. Во-первых, в этом случае документы не ездят из страны в страну, и время ожидания визы значительно уменьшается. Во-вторых, поиск работы на месте радикально повышает ваши шансы, и это тоже заметно ускоряет процесс.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments156

Собственный поисковик по раздачам The Pirate Bay

Reading time10 min
Views18K
В последнее время на хабре стало популярно делать собственные поисковики по RuTracker. Мне это показалось прекрасным поводом для того, чтобы отойти от скучной enterprise разработки и попробовать что-нибудь новое.



Итак, задача: реализовать на локалхосте поисковик по базе The Pirate Bay и попутно попробовать, что же такое frontend разработка и с чем её едят. Задача осложняется тем, что TPB не публикует своих дампов, в отличие от RuTracker, и для получения дампов требуется распарсить их сайт. В результате гугления и осмысления задачи я решил в качестве поисковика использовать Elasticsearch, для которого написать client-side only фронтенд на AngularJS. Для получения данных я решил написать собственный парсер сайта TPB и отдельный загружатель дампа в индекс, оба на Go. Пикантность выбору придавал тот факт, что ни к Elasticsearch, ни к AngularJS я до этого ни разу не прикасался и именно их опробывание было моей настоящей целью.
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments8

Smart pointers для начинающих

Reading time6 min
Views201K
Эта небольшая статья в первую очередь предназначена для начинающих C++ программистов, которые либо слышали об умных указателях, но боялись их применять, либо они устали следить за new-delete.
Читать дальше →
Total votes 74: ↑67 and ↓7+60
Comments44

Рекурентная нейронная сеть в 10 строчек кода оценила отзывы зрителей нового эпизода “Звездных войн”

Reading time11 min
Views159K
Hello, Habr! Недавно мы получили от “Известий” заказ на проведение исследования общественного мнения по поводу фильма «Звёздные войны: Пробуждение Силы», премьера которого состоялась 17 декабря. Для этого мы решили провести анализ тональности российского сегмента Twitter по нескольким релевантным хэштегам. Результата от нас ждали всего через 3 дня (и это в самом конце года!), поэтому нам нужен был очень быстрый способ. В интернете мы нашли несколько подобных онлайн-сервисов (среди которых sentiment140 и tweet_viz), но оказалось, что они не работают с русским языком и по каким-то причинам анализируют только маленький процент твитов. Нам помог бы сервис AlchemyAPI, но ограничение в 1000 запросов в сутки нас также не устраивало. Тогда мы решили сделать свой анализатор тональности с блэк-джеком и всем остальным, создав простенькую рекурентную нейронную сеть с памятью. Результаты нашего исследования были использованы в статье “Известий”, опубликованной 3 января.



В этой статье я немного расскажу о такого рода сетях и познакомлю с парой классных инструментов для домашних экспериментов, которые позволят строить нейронные сети любой сложности в несколько строк кода даже школьникам. Добро пожаловать под кат.
Читать дальше →
Total votes 82: ↑75 and ↓7+68
Comments48

Почему ваш любимый мессенджер должен умереть

Reading time18 min
Views328K
image
Кладбище мессенджеров, на котором обязательно должны оказаться Skype, Viber, WhatsApp, Hangouts, ooVoo, Apple iMessage, Telegram, Line, Facebook messenger и еще сотни мессенджеров, которым только предстоит выйти в ближайшее время.

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

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

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

image

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


Читать дальше →
Total votes 260: ↑230 and ↓30+200
Comments357

WebGL для всех

Reading time11 min
Views53K


Идея данной статьи родилась после нескольких мучительных недель изучения WebGL. На личном примере выяснилось, что люди, не сталкивающиеся до этого с 3D-графикой, имеют в основном ошибочные представления о работе данной технологии. К тому же была проблема с поиском информации в интернете.

WebGL, в отличие от Javascript, имеет высокий порог вхождения, его до сих пор мало кто использует, а ещё меньше тех, кто об этом пишет. Большинство руководств или статей перепрыгивают сразу на использование какой-нибудь библиотеки. Но мы-то с вами знаем, что большие универсальные инструменты не всегда пригодны для наших задач или, возможно, делают это на неприемлемом уровне: проигрывают в скорости, поставляются с ненужным багажом и т.д.

Этой статьёй хочется облегчить порог вхождения в чистый WebGL, дать начальное представление и подсказать, куда двигаться дальше.
Поехали!
Total votes 70: ↑66 and ↓4+62
Comments24

Шейдеры в libgdx для чайников

Reading time6 min
Views23K
Статья будет полезна тем, кто начинает свое знакомство с libgdx и шейдерами. Шейдеры часто игнорируются новичками, хотя и позволяют делать множество красивых эффектов, достаточно просто. Я не буду сильно углубляться в OpenGL и шейдеры, а пройдусь лишь по верхам, но этого вполне достаточно как для использования чужих шейдеров, так и для написания своих.

Немного теории


Итак, что такое шейдер? Шейдеры в OpenGL — это небольшие программы, написанные на C подобном языке GLSL. Эти программы исполняются напрямую на GPU. Шейдеры работают в паре: вершинные шейдеры и фрагментные.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments7

Как я искал (и нашел) разницу в двух побайтово идентичных файлах

Reading time4 min
Views72K
Есть у нас одно .NET-приложение, которое умеет загружать и использовать плагины. Плагины — дело хорошее. Можно функционал расширять, можно оперативненько обновлять их со своего сайта, можно даже юзерам дать SDK и позволить писать свои плагины. Мы всё это и делали. Наши плагины представляли собой обычные .NET-сборки, которые нужно было подкинуть в определённую папку, откуда основное приложения их загружало и использовало. Ну, вы, наверное представляете как — Assembly.Load(), дальше ищем класс, реализующий необходимый интерфейс, создаём объект этого класса и т.д. Всё это работало давно, стабильно и ничто не предвещало беды. Но вдруг в какой-то момент появилась необходимость создать плагин, состоящий из нескольких файлов. В связи с этим было решено считать плагином не просто .NET-сборку (1 файл), а zip-архив, в котором может быть как одна сборка, так и несколько файлов. В связи с этим пришлось научить билд-сервер паковать плагины в архивы, а основное приложение — разархивировать их в нужное место. В общем-то задача на 10 строк кода. Ничто не предвещало беды. И вот скачиваю я с билд-сервера собранный архив с плагином, разархивирую его в нужную папку, запускаю приложение, и… не работает! Стоп, как не работает? Это ведь тот же плагин!

Дальше — больше. Прошу проделать ту же самую процедуру моего коллегу, на его компьютере. Он пробует — и у него всё работает! Но как же так? Одна версия приложения, один и тот же файл с билд-сервера. Какая-то разница в окружении? Сажусь за компьютер коллеги, пробую ещё раз — не работает! Он в этом время пробует на моём — работает! То есть получается, что файл «помнит», кто его разархивировал! Зовём третьего коллегу понаблюдать этот цирк. Последовательно, на одном и том же компьютере, по очереди делаем одни и те же действия: скачиваем архив с плагином, разархивируем в нужную папку, запускаем приложение. Когда это делаю я — программа не видит плагин, когда это делает коллега — всё работает. На третьем круге этих интересных экспериментов вдруг замечаем разницу в действиях: я разархивировал плагин стандартными средствами Windows, а мой коллега — с помощью 7-Zip. И то и другое вызывалось нами из контекстного меню архива, так что разницу в клик по не тому пункту вначале никто не замечал. Ну ок. Получается, файл, извлечённый из zip-архива с помощью 7-zip, отличается от того же файла из того же архива, извлечённого с помощью стандартного архиватора Windows?

Кстати, пока вы не открыли статью под катом, ответьте-ка сами для себя на вопрос, может ли такое быть, что содержимое файлов валидного zip-архива при разархивации 7-zip и через проводник Windows будет разным?
Читать дальше →
Total votes 189: ↑176 and ↓13+163
Comments88

Учёные установили, что волшебные грибочки меняют сознание с первого раза — и, похоже, навсегда

Reading time3 min
Views146K
image

Медики из Университетской медицинской школы им. Джонса Хопкинса (США) выяснили, что после первого приёма на сознание влияют не только LSD, но и «волшебные грибочки», действующее вещество у которых – псилоцибин. Это открытие стало для учёных неожиданным по нескольким причинам.

Кроме того, что ранее не было известно о таком сильном и мгновенном влиянии псилоцибина на психику человека, само заметное изменение психологического портрета – для взрослого человека вещь довольно редкая. У психологов принято считать, что характер человека заканчивает формироваться в 25-30 лет, после чего остаётся практически неизменным. Одно недавнее исследование даже утверждает, что основные персональные черты обнаруживаются уже у первоклассников.

«Это одно из первых исследований, доказывающих, что характер взрослого человека можно сильно изменить»,- утверждает Кэтрин Маклин [Katherine MacLean], кандидат наук из указанного университета.

При этом учёные склонны полагать, что характер меняет не сам наркотик, а ощущения и мистические переживания, которые он вызывает. Сильные, трансцендентные ощущения не кажутся людям менее яркими оттого, что они вызываются химическим раздражителем. Опрошенные учёными люди утверждают, что приём упомянутых препаратов стал одним из самых сильных ощущений в их жизни.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments300

Нужно ли Марсу магнитное поле?

Reading time7 min
Views47K


Продолжаем рубрику "Прикладное терраформирование". В предыдущем выпуске мы оценили марсианские запасы углекислотного льда, и человеческие возможности по его преобразованию в атмосферу. Сегодня поговорим о том есть ли какой-либо смысл наполнять атмосферу Марса в условиях отсутствия магнитного поля.
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments60

Парадокс Ферми

Reading time17 min
Views155K
В чудную звёздную ночь каждый ощущает нечто особенное, когда обращает свой взор в небо и видит подобную картину:




Как правило, многие люди поражены эпической красотой или даже обескуражены грандиозными масштабами Вселенной. Лично мною овладевает «экзистенциальная опустошённость» — удручающее состояние, не покидающее меня, по крайней мере, последующие полчаса. Каждый чувствует нечто.

Вот это самое нечто ощутил и физик Энрико Ферми, задавшийся резонным вопросом: "А где все?".
А ведь и правда, где все?
Total votes 77: ↑71 and ↓6+65
Comments384

Тысячи фотографий программы «Аполлон» загружены на Flickr

Reading time2 min
Views37K
Сегодня у конспирологов и их противников большой праздник — на Flickr загружено более 8400 фотографий в высоком разрешении, сделанных астронавтами во время полетов на Луну. Особенность этих фото — это необработанные версии отсканированных оригинальных фотографий НАСА.

image


Посмотреть и загрузить фото можно по ссылке на альбом Project Apollo Archive.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments88

Как я стал программистом. Путь от питерского бездомного до Senior Developer-а за 6 лет

Reading time6 min
Views229K
Всем привет! Меня зовут Андрей, я работаю в отделе разработки продуктов Veeam Software.

В этом году исполняется 6 лет с того дня, как я «пришел» в программирование. К слову, случилось это стихийно, и на момент написания своего первого кода, у меня за плечами не было ни профильного образования, ни малейшего опыта. Сегодня же, я создаю продукт, признанный и уважаемый во всем мире.



Сегодня я хочу рассказать свою историю.

Итак, начну с момента, когда мне исполнился 21 год, я уволился из рядов доблестной российской армии и оказался на серых и холодных улицах Санкт-Петербурга. Осень, отсутствие жилья и денег активировали все клетки головного мозга для ответа на вопрос: «Что делать?».
Читать дальше →
Total votes 168: ↑152 and ↓16+136
Comments87

«Худой мир». Глава 2

Reading time10 min
Views15K
И снова здравствуйте. Два месяца назад я выложил первую главу повести, и, судя по реакции, получилось неплохо. Поэтому представляю вашему вниманию вторую главу.

Прошу прощения что так долго с ней возился.

На случай если кто забыл с чего все начиналось (за два месяца немудрено) — Глава 1.


Немного фантастики под катом
Total votes 20: ↑17 and ↓3+14
Comments7

Как быстро проверить Linux сервер на предмет взлома

Reading time4 min
Views127K
Примерно два года назад я арендовал у одного немецкого хостера не очень мощный сервер на базе Centos 5.2. На нём живут несколько вебпроектов, приносящих некоторую прибыль, и поэтому, я стараюсь присматривать за ним по мере возможности.
На Centos есть стандартный анализатор логов Logwatch, который запускается ежедневно по крону, анализирует содержимое /var/log, делает сводный отчет и присылает его по электропочте. В один прекрасный день я обнаружил в этом отчете запись:

--------------------- yum Begin ------------------------ 
 
 Packages Installed:
    lzo2 - 2.02-3.el5.rf.i386
    dnstracer - 1.8-1.2.el5.rf.i386
    openvpn - 2.0.9-1.el5.rf.i386

---------------------- yum End -------------------------


В тот момент меня она очень смутила, так как в предыдущий день на сервер я не логинился и тем более ничего не устанавливал. Первое, что пришло в голову — сервер был скомпроментирован. Себя я считал уверенным пользователем Linux, однако я растерялся. Благо в тот момент в icq был мой бывший коллега, лучший системный администратор, которого я знаю, и просто очень хороший человек.
Он помог быстро проверить систему. В результате у меня сформировалось краткое HowTo о том, как быстро проверить свой сервер на предмет взлома. Уверен, что многим Храброчитателям оно будет полезно. Предполагается, что пользователь знаком с консолью Linux/Unix.

Читать дальше →
Total votes 212: ↑183 and ↓29+154
Comments105

Как самому собрать аналоговый левитрон

Reading time6 min
Views80K

0.Предисловие


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

1.Краткое описание


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

Получилось вот что:


Читать дальше →
Total votes 73: ↑73 and ↓0+73
Comments36

15 советов и хитростей инструментов разработчика Chrome, которые вы обязаны знать

Reading time5 min
Views204K
Сегодня Google Chrome является самым популярным браузером среди веб разработчиков. С быстрым, шести недельным, циклом релизов и мощным набором постоянно расширяющихся инструментов разработчика, превратившим браузер в инструмент, который вы обязаны иметь. Большинство из вас, вероятно, знакомы со многими его функциями, такими как «живое» редактирование CSS, используя консоль и отладчик. В этой статье мы с вами рассмотрим 15 захватывающих советов и хитростей, которые позволят улучшить вашу производительность еще больше.
Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments23

Как отключить обновления в Skype и рекламу заодно

Reading time1 min
Views199K
Относительно недавно skype обновился, довольно радикально изменив интерфейс. И я как закоренелый консерватор стал искать способ, как оставить при себе свои старые привычки, заодно нашел как избавиться от рекламы.

Инструкция:
1. Запретить Скайпу исходящие подключения на порты 80 и 443.
2. Создать файл %TMP%\SkypeSetup.exe и запретить себе всё на этот файл.
Читать дальше →
Total votes 34: ↑19 and ↓15+4
Comments39

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity