Pull to refresh
1
0
Габриэль Гарсия Маркес @MadMac

User

Send message

Java-программист в Петербурге. Обзор рынка труда с точки зрения соискателя. Часть 2/3. Подводные камни для «новичка»

Reading time14 min
Views24K
Часть 1/3. Какие бывают 'плюшки'.
Часть 3/3. Какие бывают работодатели. Характерные особенности.

Подводные камни для новичка.


Первые подводные камни, вообще-то, могут начаться ещё на собеседовании — например, проект новый, процесс интервьюирования ещё не налажен, первый вопрос может быть “Do you have a printed copy of your CV?” от иностранного представителя, в общем, на вас в качестве одного из подопытных кроликов этот процесс и будут отлаживать. Ещё вас могут внезапно поставить на “конвейер”: пропустить через три стадии собеседования по часу с лишним каждая сразу. Проблемы это может породить, если вы не подготовились к собеседованию или если у вас на это день назначены ещё другие собеседования. Но это так, к слову.

Общие соображения.

«Если кто-то виноват, то заранее ясно кто».

Во-первых, есть некоторая естественная склонность при возникновении непоняток (что там было про управленческие и коммуникативные навыки?), трений и, тем более, конфликтов с участием новичка истолковывать их не в его пользу. Даже если новичок прав, то всё равно есть причины чтоб его уволить: ‘менеджер не может с ним сработаться’, чел ‘не вписывается в неформальный корпоративный формат’ или ещё что-то в этом роде. Если такое “не сработался” повторится и со следующими, то или через пару-тройку кандидатов с кем-нибудь наконец сработаются или задумаются, а может быть «что-то в консерватории поправить». В общем, если вы кому-то из начальства или “старожилов” из тех, к мнению которым прислушиваются «внезапно» чем-то “не понравились” или почему-то вызываете у него постоянное желание подколоть вас или уязвить или продемонстрировать своё остроумие вместо чёткого и ясного выражения того, что от вас требуется, то, если дело «дойдёт до ручки», то ясно, кого будет проще уволить — новичка на испытательном сроке, которому надо заплатить за три дня, или «более полноправного» работника, которому надо при прекращении трудового договора не по его инициативе заплатить за два-три месяца и с которым уже как-то сработались? И если они за пару-тройку итераций всё же найдут кого хотят и с кем сработаются, то спишут случай с вами на “мало ли что бывает”. Да ещё и вопрос, захотите ли сами работать в такой обстановке.
Читать дальше →
Total votes 46: ↑31 and ↓15+16
Comments4

Java-программист в Петербурге. Обзор рынка труда с точки зрения соискателя. Часть 3/3. Какие бывают работодатели

Reading time6 min
Views34K
Часть 1/3. Какие бывают 'плюшки'.
Часть 2/3. Подводные камни для «новичка».

Какие бывают работодатели. Характерные особенности.


Вместо краткого вступления, одну закономерность можно назвать сразу: чем длиннее и крупнее проект, тем древнее технологии. Хотите на практике освоить новые технологии — участвуйте в стартующих проектах длиной 3-6 месяцев.

  • Фирмы, работающие на Министерство обороны и подобные структуры.
    Секретность, используется относительно узкий набор технологий — которые сертифицированы в ФСБ. Например, Java 1.6 и Tomcat сертифицированы, а EJB-контейнеры не сертифицированы, вместо них может использоваться самописная недо-пародия. Что хорошего в самописных недо-пародиях — разработчик, что обычно рядом и доступен для общения, что плохого — какая-то мелкая функция, которая есть, но её пока (почти год) не использовали, но которая внезапно понадобилась тебе, — может просто тупо не работать (но можно заставить разработчика быстро починить).
Читать дальше →
Total votes 73: ↑53 and ↓20+33
Comments30

Построение множества Жюлиа

Reading time8 min
Views77K
Привет. Кипят страсти, конец года, сессии, дедлайны, новый год, а так же цензура проникает во все слои интернетов, что не может не печалить. Хабр уже не торт. Просто хотелось написать, что я не согласен с таким подходом, но тогда бы меня просто забанили. Так что придется написать интересный контент. Хотя если забанят из-за предисловия к посту о множестве Жюлиа, ну что, тогда остатки торта стухли и шансов нет.

Итак, вернемся к теме поста. Я давно хотел немного больше узнать о комплексных числах, а не только то, что корень из минус единицы равен i. Особенно вызывали интерес фигуры имеющие фрактальную структуру, хотелось понять, что это значит, и как сделать такую визуализацию. Где то на полке стояла книжка по ТФКП, а так же закончился курс по комплексному анализу на курсере, и появилось немного свободного от работы времени. Приступим.
Читать дальше →
Total votes 119: ↑110 and ↓9+101
Comments42

Bitcoin: основные принципы майнинга

Reading time8 min
Views621K

(источник)

Про Bitcoin (BTC) на Хабре писали много (в последнее время даже чересчур много). Как он работает, об интересе к нему со стороны правительства и спецслужб. Биткойн не раз пытались похоронить и затем откопать назад. Даже проводили экскурсии на страусиную ферму. Но как-то, глядя на это, не складывалось целостной картины.

Я постараюсь отчасти восполнить этот пробел и изложить в нескольких постах основные принципы и историю того, как добывались и добываются биткойны. Преимущественно внимание будет уделяться технологической стороне вопроса, а не громким скандалам в мире медиа и политики. Также, я постараюсь избежать повторения того, о чем уже писалось не раз.
В этот раз речь пойдет об общих принципах майнинга.
Читать дальше →
Total votes 161: ↑142 and ↓19+123
Comments91

Запускаем Ubuntu и смотрим Torrent и Torrent-TV прямиком на Samsung SmartTV

Reading time6 min
Views167K
image
После прочтения комментария от awoland во вчерашней статье Как SmartTV забыли о главном, я сразу полез пробовать получить root-права и telnet/ssh на своем телевизоре. Оказывается, все уже готово для этого, и это проще простого!

Достаточно установить Виджет SamyGo, и он все сделает за вас!

Что дает нам SamyGO?

  • Root-доступ на ТВ через Telnet
  • Виртуальную флешку, монтирование NFS, Samba, FTP на нее
  • Samba, FTP-серверы
  • Apache2 с PHP
  • rtorrent
  • Уйму веселья!


# -*- DISCLAIMER -*-
Все, что вы делаете со своим ТВ, вы делаете на свой страх и риск. Автор этой статьи не несет никакой ответственности за ваш анал.

Для моего ТВ (E-серия), мне необходимо было:
  1. Установить Skype на ТВ и запустить его 1 раз
  2. Скачать инсталлятор виджета SamyGo на флешку
  3. Запустить его с флешки
  4. ???
  5. PROFIT!

Как они это сделали, демоны?

Вот как выглядит скрипт инсталлятора
Читать дальше →
Total votes 104: ↑100 and ↓4+96
Comments66

Где моя повозка, сударь? Безопасность GPS-трекинга

Reading time7 min
Views39K
Добрый день. В стране вот-вот начнется новогоднее настроение, а значит, пора отпусков, салатов и легкого ненапряжного ресеча.
Мне очень нравится обращать внимание на информационную безопасность вещей, которые окружают человека в повседневной жизни. Что ж, давайте поговорим об одной из таких вещей. GPS-трекер, дамы и господа!


Читать дальше →
Total votes 105: ↑103 and ↓2+101
Comments32

IBM PureData для Hadoop: чем эта система может мне помочь?

Reading time2 min
Views6.1K
Сегодня в компаниях информация выстраивается и хранится, как правило, несколькими способами и на нескольких платформах. Данные существуют в неструктурированном, неоптимизированном виде, что не позволяет извлекать из них информацию, необходимую для принятия стратегически важных решений. Роль Больших данных в этом сценарии заключается в возможности собирать такую информацию из различных входных данных, структурировать ее и выдавать данные для использования при анализе, при принятии решений и при работе со средствами предиктивной аналитики. Новейшая из систем IBM PureSystems объединяет в себе концепцию «Больших данных» и решение Apache Hadoop, исходя именно из таких задач.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments5

Настраиваем VPN связь посредством l2tp + ipsec c использованием в качестве сервера OpenVZ контейнер

Reading time5 min
Views86K
Здравствуйте,

не так давно командой OpenVZ было выпущено новое ядро с поддержкой ipsec внутри контейнера. Давно хотелось отказаться от стороннего ПО на локальной Windows машине и использовать возможность настройки защищенного VPN канала силами самой системы. В качестве сервера будем использовать Debian 7 контейнер на OpenVZ. В качестве клиента — стандартный VPN клиент Windows. В качестве авторизации — авторизацию по PSK ( по ключу ).
Подробности
Total votes 28: ↑27 and ↓1+26
Comments16

Основы разработки клиента сети I2P

Reading time8 min
Views21K
Данная статья предназначена для тех, кто хотел бы разработать собственного I2P клиента «с нуля». Предполагается знакомство с основными концепциям и понятиями I2P. На настоящий момент на это счет имеется достаточно документации и статей, в том числе и переведённых на русский язык. С другой стороны имеется официальная документация, достаточно хорошо описывающая протоколы и форматы сообщений. К сожалению она носит разрозненный характер, при этом многие неочевидные вещи там отсуствуют. Данная статья написана в первую очередь на основе изучения и отладки официального I2P джава-клиента. Конечной целью является реализация полностью на C++. Исходный код проекта в текущем состоянии располагается на github.
Читать дальше →
Total votes 58: ↑55 and ↓3+52
Comments35

Что такое качество кода и зачем его измерять

Reading time5 min
Views44K

Измеримость и определение качества кода это вечная тема в мире программирования. Думаю все специалисты которые уже имеют опыт с большими проектами с многолетней историей не сомневаются в необходимости поддерживать код в качественном состоянии. Но не всегда достаточно времени для того чтобы выяснить какие характеристики важны именно в этом проекте. В этой статье не будет описано как нужно писать и оформлять код и нужны ли пробелы вокруг скобок. Сегодня я постараюсь выделить самые важные аспекты которым стоит уделять внимание и на что они могут повлиять, а какие допустимые пределы и как за ними следить решать Вам.
Читать дальше →
Total votes 23: ↑17 and ↓6+11
Comments6

Пишем плагин для Maven

Reading time10 min
Views21K
Есть у меня на некоторых maven-проектах профиль, с помощью которого производится копирование shared-библиотек с последующим перезапуском сервера Tomcat.
Maven profile
<profile>
	<id>deploy-deps</id>
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<useSubDirectoryPerScope>true</useSubDirectoryPerScope>
							<excludeGroupIds>исключаем некоторые группы, попадающие в war-архив</excludeGroupIds>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>05-stop-tomcat</id>
						<phase>package</phase>
						<goals>
							<goal>exec</goal>
						</goals>
						<configuration>
							<arguments>
								<argument>-ssh</argument>
								<argument>-4</argument>
								<argument>-agent</argument>
								<argument>-i</argument>
								<argument>${putty.key}</argument>
								<argument>${ssh.user}@${ssh.host}</argument>
								<argument>${tomcat.dir.root}/bin/shutdown.sh</argument>
							</arguments>
							<executable>plink</executable>
						</configuration>
					</execution>
					<execution>
						<id>10-clean-shared-jars</id>
						<phase>package</phase>
						<goals>
							<goal>exec</goal>
						</goals>
						<configuration>
							<arguments>
								<argument>-ssh</argument>
								<argument>-4</argument>
								<argument>-agent</argument>
								<argument>-i</argument>
								<argument>${putty.key}</argument>
								<argument>${ssh.user}@${ssh.host}</argument>
								<argument>rm</argument>
								<argument>-Rf</argument>
								<argument>${tomcat.dir.shared}/*.jar</argument>
							</arguments>
							<executable>plink</executable>
						</configuration>
					</execution>
					<execution>
						<id>15-upload-shared-jars</id>
						<phase>package</phase>
						<goals>
							<goal>exec</goal>
						</goals>
						<configuration>
							<arguments>
								<argument>-scp</argument>
								<argument>-4</argument>
								<argument>-agent</argument>
								<argument>-i</argument>
								<argument>${putty.key}</argument>
								<argument>${project.build.directory}/dependency/compile/*.jar</argument>
								<argument>${ssh.user}@${ssh.host}:${tomcat.lib.shared}/</argument>
							</arguments>
							<executable>pscp</executable>
						</configuration>
					</execution>
					<execution>
						<id>20-start-tomcat</id>
						<phase>package</phase>
						<goals>
							<goal>exec</goal>
						</goals>
						<configuration>
							<arguments>
								<argument>-ssh</argument>
								<argument>-4</argument>
								<argument>-agent</argument>
								<argument>-i</argument>
								<argument>"${putty.key}"</argument>
								<argument>${ssh.user}@${ssh.host}</argument>
								<argument>bin/startup.sh</argument>
							</arguments>
							<executable>plink</executable>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</profile>

отходя в сторону, поведаю для чего сей профиль
В части проектов используется связка Nginx+Tomcat. Для данной связки реализовано следующее:
  1. Для всего статичного контента используется некий каталог за пределами webapps. В этот каталог «смотрит» Nginx и отдаёт по web-пути "/static/*"
  2. Все shared java-библиотеки (редко изменяемые) грузятся в каталог ${catalina.home}/shared, и в Tomcat в файле conf/catalina.properties настроена для этого переменная «shared.loader»
  3. Для каждого инстанса Tomcat создан свой системный пользователь
  4. Для доступа по SSH используются ключи и у каждого разработчика он свой

Соответственно, загрузка статичного контента и shared-библиотек это отдельные профили. Всё остальное собирается в war-архив и устанавливается через стандартный web-manager Tomcat-а.
А чтобы не плодить конфигураций, используется PAgent, в который уже и добавленые нужные нам private keys. Они же используются для подключения через Putty

Лежит себе профиль в pom.xml, не кусается вроде бы, даже пашет потихоньку на благо программера, но вот только есть в нём пара «минусов» — занимает много места при развёрнутом pom.xml да ещё и в новые проекты приходится вставлять.
И если от второго минуса можно избавиться написав шаблон в любимая_IDE или свой архетип наваять, то от первого минуса не так-то просто избавить.

Точно ли не так просто? может «обернём» этот профиль в виде плагина для Maven? Сказано, сделано.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments7

Wireshark — приручение акулы

Reading time10 min
Views1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

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

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →
Total votes 207: ↑202 and ↓5+197
Comments60

Книга «Java. Новое поколение разработки»

Reading time1 min
Views12K
Всем привет.
Вот и вышла из типографии книга «Java. Новое поколение разработки». Прошлый пост можно почитать здесь. Книга доступна в печатном и электронном виде. До 28-го ноября действует акция со скидкой 20%, при покупке книг из раздела JavaScript, JScript, DHTML. Чтобы получить скидку, при оформлении заказа введите код купона: 68db5a.



Аннотация:

Читать дальше →
Total votes 26: ↑19 and ↓7+12
Comments20

О чём молчит Joker. Рассказ-история о конференции

Reading time15 min
Views23K
15 октября славный город Санкт-Петербург посетил суперзлодей Вселенной Joker.
Нет, он никого не убил, и ни один Бэтмен не пострадал. Но его посещение, тем не менее, запомнится многим. Во-первых, это была премьера новой конференции по Java технологиям. Во-вторых, эта конференция удалась на славу, а значит, её ждёт большое будущее, а первая конференция – всегда история.

image
Читать дальше →
Total votes 56: ↑50 and ↓6+44
Comments43

Клиренс электромобилей Tesla увеличен обновлением прошивки

Reading time2 min
Views94K
image

Будущее совсем уже близко — обновление прошивок «по воздуху» могут получать не только гаджеты.

Некоторое представление о том, что на самом деле представляют из себя современные высокотехнологичные электромобили можно получить из записи в блоге Элона Маска, в которой он рассуждает на тему ряда инцидентов, случившихся некоторое время назад в США с Tesla Model S. Вкратце история с ними примерно такова: водители наезжали на некий предмет на дороге (есть мнение, что отвалившийся от трейлера кусок корпуса в одном из случаев), который пробивал защитные листы батарейного отсека (он находится под днищем авто) — в итоге машина загоралась, а сам процесс пожара почти во всех случаях не замедлил появляться на YouTube. При том, что бортовой компьютер предупреждал о проблеме, останавливал машину и горящий капот снимали чуть ли не сами водители. Всё это, вкупе с общественным мнением, привело к тому, что акции компании Tesla потеряли значительную долю стоимости вследствие потенциальной проблемы: Tesla S способны сгорать при столкновении с металлическим мусором на дороге.
Узнать подробности
Total votes 156: ↑147 and ↓9+138
Comments230

Девятилетняя оптимизация маршрутизатора

Reading time16 min
Views42K
Хочу рассказать историю жизни сервера в кампусной сети Новосибирского университета, которая началась в далеком 2004 году, а так же этапы его оптимизации и даунгрейдинга.
Многие вещи в статье покажутся общеизвестными хотя бы по той причине, что речь пойдет о событиях почти десятилетней давности, хотя на тот момент это были передовые технологии. По той же причине кое что вообще потеряло актуальность, но далеко не все, так как сервер до сих пор живет и обслуживает сетку из 1000 машин.
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments22

ЦОД повышенной ответственности: фотоэкскурсия

Reading time12 min
Views117K
Больше 15 лет мы строим и обслуживаем дата-центры для клиентов. Наш третий собственный дата-центр «Компрессор» — объект, в котором воплотилось многое из накопленного опыта.


Распределительная


Стойки

Ниже рассказ про устройство ЦОД в картинках и объяснения, где, что и как работает.

Осторожно, трафик.
Читать дальше →
Total votes 121: ↑116 and ↓5+111
Comments119

FindBugs против CDK

Reading time4 min
Views15K
Мне всегда интересно читать посты от PVS-Studio о том, как они ищут баги в каком-нибудь опенсорсном проекте. Я решил, что я тоже смогу написать такой пост, только про Java. Существует совершенно замечательный бесплатный статический анализатор Java-кода FindBugs. О нём на удивление мало писали на Хабре.

Помимо анализатора кода для такой статьи требуется подопытный кролик. Нужен довольно большой проект, но при этом не настолько распространённый, чтобы разработчики идеально вылизывали код. Я выбрал проект Chemistry Development Kit (версия 1.4.19), которым доводилось пользоваться. FindBugs я установил как плагин к Eclipse, потому что мне так привычнее.


Читать дальше →
Total votes 63: ↑62 and ↓1+61
Comments58

Нагрузочный тест c помощью Go

Reading time4 min
Views16K
Добрый день, Хабрахабр.
Вы, вероятно, знакомы с JMeter. Если в кратце — очень удобный инструмент для проведения нагрузочного тестирования, имеет огромный функционал и много-много полезных фишек. Но статья не о нем.

С чего началось

В нашем проекте есть довольно нагруженный узел, JMeter помогал долгое время. Проффилирование и оптимизации дали свой профит, но все уперлось в маленькую проблему. JMeter не мог создать очень большой трафик, а если более точно, то после 10 секунд нужного нам режима, происходил OutOfMemory и тестирование прекращалось, в некоторых случаях проблемы не было, но скорость отправки запросов заметно уменьшалась, при этом загрузка CPU — 400%, решалось перезапуском программы. Пользоваться было крайне не удобно.
Итак, мы имеем проблему, и ее нужно решить, первое, что пришло в голову — сделать свой мини-тест, отвечающий минимальным требованиям. Давно было интересно попробовать Go на вкус. Так родилось приложение go-meter. При написании возникало очень много вопросов, ответов на которые либо не было, либо они не объясняли проблему, поэтому я решил поделиться опытом и примером рабочего кода, если Вам интересно, прошу подкат.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments30

Wi-Fi с логином и паролем для каждого пользователя или делаем WPA2-EAP/TLS подручными средствами

Reading time9 min
Views271K
С практической точки зрения было бы удобно управлять Wi-Fi сетями, выдавая пароль каждому пользователю. Это облегчает задачу с доступом к вашей беспроводной сети. Используя так называемую WPA2 PSK авторизацию, чтобы предотвратить доступ случайному пользователю, нужно менять ключ, а также заново проходить процесс авторизации на каждом отдельном Wi-Fi устройстве. Кроме того, если вы имеете несколько точек доступа, ключ нужно менять на всех из них. А если Вам надо скрыть пароль от кого-нибудь, придется раздать всем сотрудникам новый.

Представим ситуацию — к вам в офис зашел кто-то посторонний (клиент, контрагент?), и нужно дать ему доступ в интернет. Вместо того, чтобы давать ему WPA2 — ключ, можно сделать для него отдельный аккаунт, который потом, после его ухода, можно удалить заблокировать. Это даст вам гибкость в управлении учетками, а пользователи будут очень довольны.

Мы сделаем удобную схему, применяемую в корпоративных сетях, но полностью из подручных средств с минимальными финансовыми и аппаратными вложениями. Ее одобрит служба безопасности и руководство.
Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments26

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity