Архив за 15 июля 2013 - 5

С Вашего позволения, пускай и немного в философской оболочке, я бы хотел продолжить тему «Почему мобильные веб приложение такие медленные?», которая уже засветилась на Хабре через другой пост: «HTML5 в мобильной разработке — что выбрать?».

Перевод поста «Your App Is Slow Because Our World Is Ending»

image
Как обычно, на этой неделе, исследуя Интернет, я наткнулся на взрывающий мозг пост, который возможно станет предвестником роковых событий. Я имею ввиду превосходную статью Дрю Кроуфорда «Почему мобильные веб приложение такие медленные?». Она объемная и очень содержательная, но с ней определенно стоит ознакомиться, если ваш уровень познаний находится на достаточно высоком уровне, чтобы проследить за идеей автора.

Если кратко, то его идея звучит приблизительно так: HTML5 приложения будут значительно уступать родным приложениям не только следующие год или два, но и в течение следующих 5-10 лет, вследствие существенных технических ограничений, присущих у мобильных платформ. У меня было пару замечаний к некоторыми из его аргументов, но он убедил меня, что две статьи, которые я написал два года назад, в которых я призываю IOS к сборке мусора и утверждают, что HTML5 будет править всем через несколько лет, возможно, должны быть пересмотрены в свете новых доказательств.
Читать полностью »

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

Использование CMAK для автоматизации клиентского подключения к VPN

Итак, предположим, что мы устали писать и обновлять инструкции по созданию подключений к нашему VPN серверу для пользователей Windows и хотели бы автоматизировать этот процесс, предоставляя пользователю готовую программу, создающую подключение с заранее предопределенными нами параметрами и готовое к работе в условиях нашей сети. Осуществить это — нам поможет встроенный в Windows Server 2008 и Windows Server 2008 R2 компонент — «Connection Manager Administration Kit» (в русской версии «Пакет администрирования диспетчера подключений»). Итак, для того, чтобы установить CMAK необходимо запустить «Диспетчер сервера» и установить новый компонент «Пакет администрирования диспетчера подключений». Весь текущий пример основан на Windows Server 2008 R2 SP1, русская версия.

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

В этот раз я хочу поговорить о виртуальном наследовании в языке Си++, и почему его следует использовать очень осторожно. Предыдущие статьи: часть N1, N2, N3.
Статья написана по мотивам заметки "Грабли 2: Виртуальное наследование". Статья хорошая, но, на мой взгляд, несколько размыта, и новичок может не до конца уловить суть опасностей. Я решил предложить свой вариант описания проблем связанных с виртуальным наследованиям.
Читать полностью »

В прошлой статье я рассказал про преимущества/недостатки и способы улучшения работы по резервному копированию через технологию прямого доступа к SAN – Direct SAN Access. Сегодня продолжим наш рассказ.

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

Только ленивый, точнее, ну очень ленивый не скажет про PHP пару ласковых. Стоит мимолётом покритиковать разработчиков за то, что больше половины попыток исправить ситуацию с фаршированием стандартной библиотеки, несогласованности и отсутствием того, что очень сильно понравилось в *подставить свой любимый язык* только её (ситуацию) ухудшают, а те, что влияют положительно — не доработаны; Конечно же это провокация и ведёт к неизбежному холивару, но давайте постараемся избежать этого. Из довольно продолжительных размышлений на эту тему и родилась одна затея…

Скажите, а ведь вы хотите что-то изменить в языке, поправить? Знакомясь с новыми языками и подходами, лично у меня — эта мысль крепла. Я испробовал довольно много подходов, начиная от попытки написать собственный интерпретатор, не обладая достаточными знаниями — попытка провалилась, заканчивая переписыванием php исходников (не интерпретатора, а самих *.php файлов) — вначале нативный интерпретатор парсит изменённые исходники, затем транслирует в кодсохраняет данные и уже их интерпретирует, но, добившись определённых результатов — и эта попытка была погребена благодаря своему неудобству и «костылеобразности». И, уже почти разочаровавшись в этой затее — мне помог докладчик на DevConf (если не ошибаюсь — Александр NightTiger), сам того не подозревая. Доклад был про аспектно-ориентированное программирование и одной из просьб докладчика, которая и подтолкнула меня на правильный путь, была: «Поднимите руки те, кто знает про php фильтры».Читать полностью »

«Бросая в воду камешки, смотри на круги, ими образуемые; иначе такое бросание будет пустою забавою.»
К.Прутков

Однажды, бесцельно тратя рабочее время и деньги работодателя с помощью серфинга интернета, наткнулся я на описание языка Whenever и на некоторое время был очерован. Язык поражает своей безумной простотой. Принципы его таковы:

1) Строки кода программы обязательно будут исполнены когда-нибудь, однако порядок их исполнения вообще никак не связан с порядком, в котором они записаны.
2) Переменные? У нас нету даже контроля за порядком исполнения, нам не нужны никакие переменные.
3) Структуры данных? Да вы шутите!

То есть программа трактуется как набор (пул) строк на выполнение и интерпретатор выбирает оттуда строку наугад, выполняет ее команды и выкидывает из пула. И так пока в пуле ничего не останется. Надо признать, что автор сего безумия почти выдержал концепцию. Почти, потому что все же организовать порядок выполнения в программе можно, так же, как и завести переменные, используя возможность добавления строк в пул выполняемых.

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

Добрый всем!
Всё началось со шкафа со старыми играми. Лет 10 назад взял у друга игру, положил её в тумбочку и вспомнил о ней через 10 лет. Заинтересовался, что за игра такая, мне неизвестная. Оказалось что это танковая аркада 1999 года, от фирмы 3DO, о похождениях супер-американского танка во время войны в заливе.

Практическая некромантия на примере игры Gulf War: Operation Desert Hammer (1999г)
Читать полностью »

CATЧерез несколько лет, мы, возможно, сможем дешево посылать небольшие спуники в глубокий космос, используя разгонный блок, разработанный инженерами Университета Мичигана (при условии, что они смогут собрать необходимую сумму на Kickstarter). Проект CAT (CubeSat Ambipolar Thruster) разработан для вывода блоков CubeSat (размером 10х10х10см) далеко за пределелы земной орбиты, используя солнечную энергию для питания установки. До сих пор, спутники CubeSat могли обращаться лишь вокруг Земли, оставаясь на орбитах, на которые они были выведены ракетами. В будущем, CAT помог бы достичь астероидного пояса или даже Сатурна и Юпитера для исследование воды на их лунах. Сумма в $200,000, собираемая инженерами пойдет на разработку и тестирование двигателя (имена тех, кто заплатит больше $60, будут выгравированы на золотой табличке, которая будет отправлена в космос). Команда планирует отправить на орбиту прототип двигателя в 2014 году при содействии NASA-Ames и Google. Завершение работ и начало запуска космических аппаратов планируется к 2015 году.

Проект на Kickstarter

На момент написания статьи, собрана сумма $26,969 из необходимых $200,000. При этом остается всего лишь 21 день на сбор оставшейся части.

Если вам интересно, то я мог бы рассказать о проекте более подробно (на странице Kickstarter'а есть подробное описание на английском, я бы мог сделать перевод для тех, кто с ним плохо дружит, а также добавить еще кое-какую информацию).

По мотивам этой новости на Engadget
Читать полностью »

Обзор и тесты нового MacBook Air (2013)

Добрый день, пользователи Хабрахабр. Хочу поделиться радостью: две недели назад я стал обладателем новенького MacBook Air MD761, одной из тех самых моделей на процессоре Intel Haswell. Грешу – взял благодаря уловкам яблочной компании. Так и расхвалили ноутбук: и 12 часов работы, и на 15% мощнее и SSD сверхбыстрые…

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

Вступление

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

Юнит. Что это такое?

Unit testing принято переводить на русский язык как модульное тестирование. Однако слово «модуль» имеет несколько другой смысловой оттенок, ассоциирующийся со схемой развертывания. Поэтому во избежание ненужных ассоциаций будем использовать англицизм «юнит». Еще раз вспомним, что такое юнит в рамках терминологии юнит тестирования:

Юнит – это фрагмент кода, дающий в данном окружении при определенных входных данных определенные выходные данные.

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


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