Рубрика «Песочница» - 24

Если вы что-то знаете об основах Java и имеете представление о структуре Android-приложения, то без труда предскажете результат работы такой программки:

public class MainActivity extends ActionBarActivity {
	public static String msg = "Hello, mad Activity";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
		msg = "WTF?!";
		finish();
	}
// и что-то там ещё ...
}

Если не знаете/не имеете, подскажу — на экране появится сообщение:

Android. Mad Activity — баг статической инициализации - 1

На первый взгляд, вопрос «что мы увидим, если запустим приложение ещё раз?» выглядит идиотским. Ан нет! С огромной (близкой к 100%) вероятностью экран будет выглядеть так:

Android. Mad Activity — баг статической инициализации - 2
Читать полностью »

Постановка вопроса

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

Если пользователи *nix систем привыкли использовать sudo или su для решения некаждодневной задачи, то пользователи ОС Windows не спешат приучать себя к хорошим манерам, продолжая работать с правами администратора.
Читать полностью »

Это статья для начинающих и несёт чисто обзорный характер о том, как можно хранить уровни своей игры в Unity3D. Если вы гуру Unity3D, эта информация вряд ли вас заинтересует. Тем не менее, жду от вас секретов мастерства хранения уровней в комментариях к посту. Если же вы только начинаете изучение Unity или хотите начать — добро пожаловать под кат.
Читать полностью »

Меня попросили найти, чем открыть файлы с расширением iraw. С которым я прежде не сталкивался. Однако благодаря богу, гуглю и яндексу быстро выяснил, что это формат, применяемый фирмой Apple и конвертеров в/из него, кроме как в AppleStore, нету.
Читать полностью »

В этой публикации хочу рассказать о том, как настроить модем ZTE mf180/190 для корректной работы в системах, основанных на Linux Ubuntu.

Недавно, перейдя на Lunux Mint 16, я столкнулся с проблемой выхода в интернет через свой 3g usb-модем. Постоянные обрывы связи заставили искать решение. Доблестный Google целиком ничего не подсказал, пришлось собирать частями.

Начнем по-порядку.
Читать полностью »

Как мы внедряли инверсию зависимостей в Salesforce - 1
Salesforce.com — популярная CRM-система.
Service Locator — шаблон проектирования, позволяющий инкапсулировать процесс получения сервиса с высоким уровнем абстракции. Шаблон использует центральный реестр, называемый «Service Locator», который по запросу возвращает информацию необходимую для выполнения задачи.

Проблема

Часто наши проекты приходят к тому, что становится необходимым начать использовать принцип инверсии зависимостей. Salesforce не имеет готовых DI контейнеров, а также отсутствует Reflection API для реализации собственного. Поэтому мы решили использовать в своих проектах реализацию шаблона Service Locator. Это позволило нам избавиться от следующих проблем:

  1. сильная связанность
  2. сложность тестирования

Читать полностью »

На нашем предприятии несколько десятков удаленных территориально от головного офиса представительств, в каждом из которых имеется база с данными о клиентах каждого представительства. Исторические данные есть и в центральном офисе, но актуальные находятся только в представительстве. Каждая БД на MS SQL Server 2005. Изредка возникает необходимость получить актуальную информацию по всем представительствам в виде таблицы Excel. Например, получить что-то вроде:

select territory, count(customerid) from customer where managerid = 1000

До недавнего момента я тупо в MS SQL Server Management Studio менял вручную connect, прогонял скрипт на выборку данных для каждого удаленного офиса и копировал результаты на лист Экселя. Но как-то выдалась свободное время, и я решил автоматизировать процесс сбора данных с удаленных БД, используя старый добрый MS Access.
Читать полностью »

в 23:48, , рубрики: Песочница, метки: ,

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

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

Естественно, захотел собрать себе такую игрушку, но, поискав в интернете, к своему удивлению обнаружил, что все схемы были исключительно аналоговыми. Так как в аналоговой технике я понимаю мало, решил «изобрести» левитрон заново. Для экспериментов под рукой оказался Arduino Uno. Заказал в Китае линейный датчик Холла (что такое эффект Холла), а именно UGN3503UA, насобирал некоторое количество старых трансформаторов для намотки пробных катушек и приступил к экспериментам.

Вот что из этого получилось:

Левитрон на Arduino - 1
Читать полностью »

Предисловие

Конечно, есть простой вариант автоматического деплоймента одной строчкой конфига groc'a на github pages, но мы же не ищем лёгких путей.

После 5-х часов мучений на винде и дюжины неудачных сборок, я всё-таки пересел на linux. Так как ruby поставился, gem тоже и даже gem install travis сработал. Но вот travis encrypt я так и не смог заставить работать. Ничего не понятно? Читай дальше.

Зачем это нужно?

  1. Удобно — не надо париться с обновлением документации. После каждой сборки и прохождения тестов генерится новая документация и пушится в репозиторий.
  2. Travis encrypt позволяет не выкладывать всем напоказ в паблик репозиторий свой private ssh.

К чему я пришёл

  1. Нужно сгенерить свой ssh-key и связать его с githab'ом (в первом ответе хорошо объясняется);
  2. Добавить в файл .travis/deploy_key.pem свой private ssh;
  3. Добавить на travis-виртуальной машинке свой ssh;
  4. Выполнить всё, что надо со своим репозиторием.

Пробема: все увидят твой private ssh key.

Для решения этой проблемки и нужен travis encrypt. Скормив ему свой ключик и получив rsa из aes'a, можно не бояться, что кто-то чужой, злой и нуждающийся в твоём бесполезном репозитории злоумышленник сможет так легко сломать твой проект.
Читать полностью »

Все началось с осознания того, что пора зарегистрироваться на фрилансиме. Посмотрел, уже набралось 56 тысяч специалистов. Набрал свою тему в поиске «Responsive Design + Server Side» и обнаружил, что в этой теме RESS только двое фрилансеров, посмотреть нечего. Не густо. А может, поиск что-то даст? Яндекс показал, что в рунете эта тема вроде обсуждается, но реальных работ практически нет. По всей видимости, имеются свои причины «не популярности». А тут, в первой позиции, статья из Хабра: «Мобильная версия сайта или адаптивный дизайн?»

Выводы в статье о том, что RESS — это Минимизация трафика и Сложность в разработке, подтверждают догадки. Нельзя с ними не согласится. Сложность. Но это все лежит на поверхности. На самом деле, проблем еще больше и возникают они в самом процессе подготовки и отображения контента для мобильников.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js