Search
Write a publication
Pull to refresh
3
0
Алексей @ParaPilot

User

Send message

1 августа — Всероссийская интернет-забастовка (#ЗаконПротивИнтернета)

Reading time2 min
Views267K
1 августа вступил в силу 187-ФЗ.
Более известный широкой общественности под разными эпитетами: «антипиратский», «закон о произвольных блокировках», «руcская SOPA».
Или просто — закон против интернета.
На Хабре уже не раз обсуждался данный закон, как его молниеносно рассмотрела Госдума, со скоростью света одобрил Совет Федерации и неминуемо подписал президент.
Тут был коллективно разработан один из вариантов протестной блокировки своих ресурсов с помощью скрипт-заглушки, предлагались и вывешивались баннеры в поддержку петиции об отмене 187-ФЗ, разрабатывались информационные плагины и приложения, вырабатывались и другие варианты дальнейших действий.
Наверное вы слышали и об оффлайн-акциях 28 июля, прошедших по всей России, от Москвы до Хабаровска под лозунгом «За свободный интернет», кто-то из вас и участвовал в них.
Сегодня настал день массированного высказывания своей позиции уже в онлайне, на той территории, за которую идет бой. Предпринята очередная атака на интернет. Можно промолчать и философски наблюдать за развитием событий. Но равнодушие, как известно, убивает. Потом придут и за тобой.

Итак, настал день Всероссийской интернет-забастовки.

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

Я, пират (глава 6)

Reading time7 min
Views67K


Окончание рассказа. Начало можно прочитать здесь:

Главы 1-2 habrahabr.ru/post/184910
Главы 3-5 habrahabr.ru/post/186554

Исправлена ошибка с почтой в главе 1, возможно позже я добавлю детали к главам 3-5, которые по отзывам получились малоэмоциональными, а пока представляю вам последнюю главу. На ней заканчивается сюжет, придуманный год назад, и пока продолжение не планируется.
Читать дальше →

Я, пират (главы 3-5)

Reading time9 min
Views112K
Продолжение опубликованного ранее рассказа. Его название было выбрано по аналогии с рассказом Эндо Биндера «Я, робот» (1939), который представляет собой предсмертную записку робота, преследуемого полицией за преступление, которого он не совершал.
Читать дальше →

Квадрокоптер-машинка на радиоуправлении получил достаточное финансирование на Kickstarter

Reading time1 min
Views55K


Не так давно я опубликовал новость «Квадрокоптер или машинка на радиоуправлении? И то, и другое!», в которой описывалось интереснейшее устройство, способное и ездить по земле, и летать. Проект с коротким названием «B» был размещен на сервисе Kickstarter, где и получил финансирование, более, чем достаточное для начала массового производства таких машинок. Планировалось набрать $133000 (86500 евро), а реальная сумма (на момент написания новости) получилась больше на 21 тысячу долларов — $154000 (100 тысяч евро, около того).

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

Подборки судебных решений. Софт и суды

Reading time20 min
Views58K
В данном материале освещаются интересные дела из российской судебной практики, связанные с программным обеспечением: ситуации, когда имел место плагиат исходного кода, когда субъекты предпринимательской деятельности пренебрегали условиями лицензионных соглашений проприетарного ПО и использовали «пиратские» копии программ и некоторые другие. Начну с самого интересного:
Читать дальше →

Durex создал вибрирующее белье, которым можно управлять через смартфон

Reading time1 min
Views268K
Производитель презервативов Durex представил свою новую линию одежды «Fundawear», состоящую из нижнего белья, которое будет вибрировать по желанию вашего сексуального партнера. Вы и ваш партнер сможете включать вибрацию белья прямо со смартфона – такого рода приложение приносит новый смысл понятию «секс по телефону».

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

GRUB всемогущий, или Делаем загрузочную флешку

Reading time8 min
Views560K
Про сам grub, загрузочные флешки и особенно специальные утилиты для создания дисков написано уже не мало, но выглядят они узко направленными. Например только для создания флешки Windows 7, различные PEtoUSB, есть более универсальные как в этом топике. Куча утилит по сути устанавливают загрузчик grub, isolinux (реже BCDW или lilo, еще реже свой как Win7), и затем раскладывают предложенные ему файлы (Windows7,WindowsXP, Ubuntu и т.д.) по папкам. От сюда и требовательность к образам (как писали в комментариях к этому топику).

А между тем абсолютное большинство выложенных в интернете дисков (особенно USB) как раз и используют isolinux и grub, что мешает их просто объединять? да ничего!

Я постараюсь с примерами рассказать, как сделать загрузочную, установочную и просто Live флешку, причем все в одном без заточенных под конкретный дистрибутив утилит. И иметь возможность, при необходимости, легко добавить на флешку еще что-то, без очередного ее переформатирования.
image
(С) Картинка оттуда
Читать дальше →

Простые догмы при работе с цветом в интерфейсах

Reading time5 min
Views111K
image

Привет, username!

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

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

Как создать блог на github.io, используя CMS Ghost

Reading time2 min
Views23K


Github предоставляет всем своим пользователям создать статический блог в домене github.io. При это предлагает использовать Jekyll. Но сегодня мы поговорим о том, как сделать блог на гитхабе с cms ghost.
Читать дальше →

Arduino в быту, на работе, в машине

Reading time14 min
Views68K
В последнее время все больше и больше постов посвящается поделкам на основе плат Arduino. Я тоже хочу рассказать о нескольких проектах, созданных на основе этих плат. Не являюсь автором этих проектов и имею к ним косвенное отношение. Но настоящие авторы дали мне добро на использование их разработок в этой публикации. Дело в том, что они не имеют никакого отношения к IT и, соответственно, не имеют аккаунтов на Хабре и его отпрыске Geektimes.
Читать дальше →

Комплексный твик реестра для Windows 7 + бонус: Перенос пользовательских данных

Reading time13 min
Views97K

Быстрая настройка Windows


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

Можно долго и нудно настраивать различные параметры системы по разным аплетам Панели управления и др., ставя и снимая галочки, прописывая нужные параметры. Но есть и более быстрый путь — применить все необходимые настройки «в два клика» — через готовый файл настроек реестра. Про твики реестра Windows системные администраторы должны знать. Наверняка у многих есть свой набор настроек, собранных в *.reg файле. С помощью твиков можно не только быстро настроить «чистую» операционную систему, но и переиначить параметры рабочей машины без переустановки ОС.
Читать дальше →

IIS как пограничный веб-сервер (теперь haproxy)

Reading time8 min
Views46K
В этой статье я хочу описать не самый типичный сценарий, который, тем не менее, имеет право на жизнь.
Дело в том, что мы используем IIS как прокси для других веб-серверов компании. Я расскажу, как это реализовано и с какими трудностями пришлось столкнуться​.

Постановка задачи
Разберём на примере сервера YouTrack. Он представлен неприглядным srv-youtrack-01.local.domain и находится на веб-сервере внутри компании. Задача заключается в том, чтобы обеспечить доступ к нему из интернета по красивому имени yt.company.ru. При этом обязательно должен использоваться https.
Читать дальше →

Анатомия шаблонов Blogger

Reading time7 min
Views24K

Вступление


В Сети, как оказалось, не так уж и много информации относительно того, как создавать свои собственные темы оформления для блоговой платформы от Google, во всяком случае, в Рунете. Есть какие-то куцые посты про то, как настроить отдельное свойство конкретного виджета, да и только. Посему, в этой статье я решил консолидировать знания на данную тему.
Читать дальше →

10 самых распространённых ошибок при программировании на JavaScript

Reading time10 min
Views156K


Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

На первый взгляд, этот язык может показаться довольно простым. Встраивание в веб-страницу базового функционала JavaScript — это не проблема для любого опытного разработчика, даже если он ранее не сталкивался с этим языком. Однако это обманчивое впечатление, поскольку JavaScript гораздо сложнее, мощнее и чувствительнее к нюансам, чем кажется поначалу. Немало тонкостей в этом языке приводит к большому количеству распространённых ошибок. Сегодня мы рассмотрим некоторые из них. На эти ошибки нужно обратить особое внимание, если вы хотите отлично программировать на JavaScript.
Читать дальше →

Вы мне Javascript сломали

Reading time5 min
Views63K
Давным-давно

Раньше все писали много отвратительного JS прямо на страницах, не вдумываясь, и это было очень плохо. Подозреваю, его и до сих пор так пишут, но это делают всё те же люди, которые ни блогов, ни хабра не читают, так что давайте мы не будем о них думать (потом нам, конечно, придётся оказаться с ними в одном проекте и — господи, нет, пожалуйста, только не это)

Самое крутое, классное и волшебное, что было в JS — это то, что никто в больших организациях не хотел с ним иметь дела, оставаясь в своём спокойном мире прекрасно организованных слоёв абстракций из фабрик и волшебных фреймворков инъекций XML.

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

Мало того, когда все эти проблемы с производительностью возникали, мы могли всех спасти, написав на JS фронтэнд, который делал вид, что никаких проблем не существует и всё это прекрасно работало, несмотря на тоскливое качество бэкэнда.

Мы достигли расцвета JS

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

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

Мы следовали вменяемому процессу и делали отличные вещи из отличного кода, освободившись от оков мерзких корпоративных фреймворков.
А потом вы всё сломали

Смелый стайлгайд по AngularJS для командной разработки [1/2]

Reading time5 min
Views39K
После прочтения Google's AngularJS Guidelines у меня создалось впечатление о его незавершённости, а ещё в нём часто намекали на профит от использования библиотеки Closure. Ещё они заявили, «Мы не думаем, что эти рекомендации одинаково хорошо применимы для всех проектов, использующих AngularJS. Мы будем рады видеть инициативу от сообщества за более общий стайлгайд, применимый как для небольших так и крупных проектов».

Отталкиваясь от личного опыта работы с Angular, нескольких выступлений, а также имеющемуся опыту командной разработки, представляю Вашему вниманию этот смелый стайлгайд по синтаксису, написанию кода и структуре приложений на AngularJS.
Читать дальше →

ANGULARJS + REQUIREJS

Reading time5 min
Views55K

Во время разработки проектов мы полюбили AngularJs. Но также мы встретили некоторые трудности в борьбе за чистоту модульности, с которой AngularJs справляется хорошо, но все же порой ему чего-то не хватает. RequireJs оказывается полезным там, где AngularJs оставляет желать лучшего, но использование их вместе — не совсем тривиальная задача.

Итак, опишем наш взгляд на решение проблемы.

Для чего?

Работая с AngularJs вы обязательно задумаетесь о правильной организации кода. Конечно уже существуют отличные примеры решения проблемы. Например можно изучить теоретический пост Брайана Форда или практическое руководство Клиффа Мейерса. Я же поделюсь способом организации кода в приложениях AngularJs с использованием RequireJs.

Данный подход будет полезен, если вы хотите:

  • перестать беспокоиться о подключении скриптов в правильном порядке;
  • загружать javascript код асинхронно;
  • иметь возможность скомпилировать код в один минифицированный JS-файл;
Читать дальше →

В чем разница между factory и provider в AngularJS (на пальцах)

Reading time2 min
Views53K
Как-то давно переводил статью «Понимание типов сервисов в AngularJS (constant, value, factory, service, provider)». На практике, конечно, не всё пригождается, поэтому в рамках понижения порога вхождения в Ангуляр, объясню проще.
Читать дальше →

Загрузка файлов в AngularJS

Reading time3 min
Views59K
Давно писал модуль для загрузки файлов и всё он был не идеальным. И тут подумал, если сейчас не опубликую, то никогда не опубликую, идеал-то не достижим!

При составлении АПИ руководствовался принципом — как можно проще. Поэтому сначала несколько мыслей о загрузке файлов:

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

Загрузка каждого файла отдельным запросом. На любом хостинге существует ограничение на максимальный размер POST-запроса (напр., 10 МБ). Если мы грузим одновременно 10 файлов, значит их вес в сумме не должен превышать 10МБ. В 99% случаев проще пожертвовать производительностью и не иметь проблем с такими ограничениями.

Никаких отложенных загрузок. Файл должен загружаться сразу после добавления (не в 2000 году, чай, живем), поэтому никаких методов работы с очередью — выбрал файл, выбрал еще 5 штук, удалил один, нажал «отправить» — не будет. Зато будет отмена загрузки.

Не стоит разделять загрузку файлов по кнопке и перетаскиванием. В моем случае любая область, помеченная директивой позволяет перетаскивать на нее файлы, а если это инпут с типом file, то еще и в проводнике можно выбрать. Очень удобно знать, что на кнопку можно перетаскивать, когда потянул в браузер 10 файлов, а дизайнер забыл подсветить поле перетаскивания, и гадаешь перетащатся ли они или откроются в новом окне.
Читать дальше →

Разделение приложения AngularJS на изолированные модули

Reading time3 min
Views14K
При разработке достаточно большого приложения неизбежно возникает момент, когда приложение наконец-то становится достаточно большим чтобы тормозить. Для AngularJS существует множество методик позволяющих добиться нужной производительности: bindonce, фильтрация списков, использование $digest вместо $apply, ng-if вместо ng-show (или наоборот), и другие. Но все они позволяют делать только локальные улучшения, не помогая в глобальном плане: избавиться полностью от вызовов $rootScope.$digest не получается, а проверка состояния всего приложения может идти очень долго.

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

Information

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