Pull to refresh

Дрон с помощью ИИ обучили экстремальным трюкам в воздухе

Reading time 2 min
Views 3.7K
Artificial Intelligence Multicopters
image

Исследователи из группы робототехники в Цюрихском университете и ETH Zurich в сотрудничестве с Intel разработали метод обучения нейронной сети, который позволяет автономному квадрокоптеру выполнять экстремальные акробатические маневры с помощью бортовых датчиков и вычислений. Дрон смог выполнять трюки, недоступные даже при управлении опытным пилотом-человеком.
Total votes 10: ↑10 and ↓0 +10
Comments 5

Гик-рекомендация

Reading time 1 min
Views 525
Lumber room
Сейчас произошёл диалог с другом-гиком:
— Как Dungeon Keeper 2 запустить в окне (в игре нет такой функции)?
— Подключись сам к себе с помощью Remote Desktop в окне под другим юзером и там его запусти :)
Total votes 17: ↑9 and ↓8 +1
Comments 2

Откуда появляются первые 10 клиентов?

Reading time 3 min
Views 745
Lumber room
Translation
Примечание: ниже находится перевод статьи «Getting those first 10 Clients», в которой автор рассуждает о способах привлечения первых клиентов для начинающего интернет-бизнеса.

В моей первой заметки я спрашивал у своих читателей, о каких вещах мне стоит написать. Часть из них задало несколько совершенно невероятных вопросов, в том числе, о маркетинге и как мне удалось получить свои первые заказы с нуля.
Читать дальше →
Total votes 35: ↑24 and ↓11 +13
Comments 37

Отдыхая — учусь, работая — отдыхаю

Reading time 2 min
Views 1.4K
Studying in IT
Вся наша жизнь — это рабочие дни разбавленные выходными и праздниками.
А наш рабочий день — это череда часов, минут, секунд.
Наверное каждый из нас слышал о производственной гимнастике:
каждые час-два, минут на пятнадцать (вместо перекуров), хорошо бы дать отдохнуть глазам, кистям, а ещё спине и ногам.
А хорошо бы совместить полезные упражнения с получением новых навыков — и практичных и эстетичных.
Я сейчас перечислю те занятия, которыми пытаюсь заниматься сам.
По моему мнению упомянутые ниже упражнения не требуют материальных затрат и лишь минимум временных.
Дополняйте, плиз.
Читать дальше →
Total votes 75: ↑63 and ↓12 +51
Comments 87

Вызов метода Javascript без его вызова фактически

Reading time 2 min
Views 3.1K
JavaScript *
Translation
imageИногда мы бываем просто ленивыми. Особенно, когда доходит дело до написания кода. И хоть круглые скобки в вызове функции не приводят к избыточности, иногда все же они могут утомлять, особенно когда javascript-метод не нуждается в передаваемых ему аргументах. Иногда это просто надоедает.
Читать дальше →
Total votes 84: ↑57 and ↓27 +30
Comments 49

CSS трюки — пишем сайт без html

Reading time 2 min
Views 15K
Website development *
Translation
В качестве предисловия к переводу. Открываем Firefox/Opera, переходим по ссылке, смотрим исходный код страницы и удивляемся. Потому что его нет. Под катом рассказ, как такое можно сделать.
Читать дальше →
Total votes 197: ↑184 and ↓13 +171
Comments 76

Монтаж четвертушками

Reading time 2 min
Views 3.9K
Working with video *
Sandbox
Я прилично времени провожу в поездках. Ноутбук всегда с собой, но творчески работать удается не всегда. А вот заниматься монтажом оказывается самое то. В монтаже больше всего времени отнимает просмотр материала и проработка стыков сцен. Особенно это касается «сырого», «стихийного» материала. Когда много дублей, в дублях много брака и приходиться сшивать ролик буквально единственно возможным образом.

Вот незадача: мой ноутбук ASUS UL30A, не тащит хайресное видео в любимом Sony Vegas'e, при работе от батарей. Я молчу о FullHD.

Небольшой, но полезный трюк под катом.
Читать дальше →
Total votes 37: ↑32 and ↓5 +27
Comments 30

Маленькие хитрости Java

Reading time 4 min
Views 267K
Java *
Sandbox
Я уже достаточно много лет занимаюсь разработкой на java и повидал довольно много чужого кода. Как это не странно, но постоянно от одного проекта к другому я вижу одни и те же проблемы. Этот топик — попытка ликбеза в наиболее часто используемых конструкциях языка. Часть описанного — это довольно банальные вещи, тем не менее, как показывает мой опыт, все эти банальности до сих пор актуальны. Надеюсь, статья пригодится многим java программистам. Итак, поехали:

new vs valueOf

//медленно
Integer i = new Integer(100);
Long l = new Long(100);
String s = new String("A");

//быстро
Integer i = Integer.valueOf(100);
Long l = 100L;//это тоже самое что Long.valueOf(100L);
String s = "A";


Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах оболочках примитивных типов, кроме случаев, когда вам нужно конкретно выделить память под новое значение. Это связано с тем, что все они, кроме чисел с плавающей точкой, от Byte до Long имеют кеш. По умолчанию этот кеш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кеша. Значение из кеша достается в 3.5 раза быстрее чем при использовании конструктора + экономия памяти. Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной. В случае, если ваше приложение очень часто использует целые типы, можно увеличить кеш для Integer через системное свойство «java.lang.Integer.IntegerCache.high», а так же через параметр виртуальной машины -XX:AutoBoxCacheMax=<size>.
Читать дальше →
Total votes 141: ↑126 and ↓15 +111
Comments 166

Маленькие хитрости Java. Часть 2

Reading time 5 min
Views 108K
Java *
В продолжение первой статьи я добавлю еще несколько штрихов о наиболее часто встречающихся ошибках и просто плохом коде, с которым часто приходится иметь дело при работе с уже написанными проектами. Я не выносил это в первую часть, так как эти ситуации встречаются гораздо реже, но поскольку первая часть вызвала много позитивных отзывов, решил продолжить. Спасибо всем комментаторам, отзывам и замечаниям. Я постараюсь избежать допущенных ошибок. Итак, продолжим:

Buffered Streams

//медленно
InputStream is = new FileInputStream(file);
int val;
while ((val = is.read()) != -1) {
}
//быстро
InputStream is = new BufferedInputStream(new FileInputStream(file));
int val;
while ((val = is.read()) != -1) {
}

Казалось бы — очевидная истина, неправда ли? Но как показал чужой код и опыт собеседования кандидатов, часть разработчиков определенно не понимает в чем преимущество буферизованных стримов. Кто до сих пор не разобрался — метод read() класса FileInputStream:
public native int read() throws IOException;

Согласитесь, каждый раз делать системный вызов, чтобы считать один байт несколько расточительно. Собственно для того, чтобы избежать этой проблемы и были созданы оболочки-буферы. Все что они делают — при первом вызове системного read() считывают несколько больше (в зависимости от указанного размера буфера, котрый по умолчанию равен 8 кб) и при следующем вызове read() считывают данные уже из буфера. Прирост производительности — на порядок. Системные вызовы, на самом деле, это не всегда плохо, например:
System.arraycopy(src, srcPos, dest, destPos, length);

В случае копированния массива — системный метод будет гораздо быстрей реализованного на java. И еще — считывайте данные порциями, а не по байтам, это тоже позволит прилично сэкономить.
Читать дальше →
Total votes 93: ↑84 and ↓9 +75
Comments 91

Декораторы в JavaScript

Reading time 3 min
Views 9.1K
JavaScript *
Sandbox
С давних времён использую декораторы в JavaScript. Недавно увидел хабротопик про примеси, который натолкнул меня на мысль поделиться собственным опытом, ибо технологии немного похожие.

Что меня не устраивает в известных реализациях?


Реализации, предлагаемые по первым ссылкам в Google, работают не тем образом, как это работает в Python. Во многих статьях предлагается создать объект, заполнить его поля функциями и осуществлять вызовы отдекорированных через эти поля.
На первой странице есть несколько ссылок, где используются методы, сходные с моими,
Есть ещё много реализаций, но они мне неинтересны.
Расскажу наиболее правильную с моей точки зрения.

Нормальный декоратор


Итак, что такое декоратор?
Декоратор, это функция, которая добавляет функции-аргументу функционала.
Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Comments 16

Псевдо 3D: Анимация вращения планет и других шароподобных объектов

Reading time 2 min
Views 19K
JavaScript *Programming *Algorithms *
Tutorial
Recovery mode
Описание небольшого трюка по анимации вращения планет или других шарообразных штуковин. На написание этой статьи меня натолкнула статья Сфера из двух треугольников (стоит почитать). А сам трюк основан на весьма простом способе создания в Photoshop псевдо-объемной картинки из плоской, который описан под катом.

микродемо


Читать дальше →
Total votes 36: ↑23 and ↓13 +10
Comments 26

Подборка трюков при анализе защищенности веб приложений

Reading time 5 min
Views 35K
Digital Security corporate blog Information Security *
Всем привет! Этот топик посвящен разным трюкам при анализе защищенности (пентесте) веб приложений. Периодически сталкиваешься с ситуацией, когда надо обойти какую-нибудь защиту, выкрутиться в данных ограничениях или просто протестировать какое-то неочевидное место. И этот пост как раз об этом! Добро пожаловать под кат.
Читать дальше →
Total votes 87: ↑81 and ↓6 +75
Comments 16

Трюки с интерфейсами в Delphi

Reading time 7 min
Views 33K
Delphi *
Приветствую.
Буквально сегодня обсуждал с коллегой интерфейсы. Он мне рассказал о своем интересном приеме, я ему о своем, но только по дороге домой я осознал всю мощь этих приемов, в особенности если объединить их вместе.
Любители удобной автоматики и MVC паттернов — прошу под кат.
За трюками
Total votes 35: ↑27 and ↓8 +19
Comments 26

Неотзывчивый дизайн

Reading time 6 min
Views 38K
Design
Sandbox
dead pixel Я дизайнер с более чем пятилетним опытом работы как в качестве офисного работника, так и в качестве свободного фрилансера. Буду рад поделиться некоторым своим опытом и подходом к работе с менеджерами или клиентами. Дело в том, что дизайн всегда субъективен. Один и тот же дизайн может вызывать и восхищение, и отторжение. Нередко это порождает немало трудностей для дизайнера, работающего над проектом в котором количество людей чье мнение нужно учесть, превышает одного человека. Попробую объяснить почему, а так же расскажу о некоторых техниках и приемах, которые могут сделать работу дизайнера менее напряженной и более позитивной.
Читать дальше →
Total votes 42: ↑36 and ↓6 +30
Comments 19

Джентльменский набор разработчика Access

Reading time 5 min
Views 131K
Programming *Microsoft Access *
Sandbox
За время работы разработчиком Access набралась куча полезностей, которую считаю своим долгом выложить на Хабр. Многие из этих сниппетов находятся в сети, а некоторые находятся с трудом или безнадежно затеряны.


Читать дальше →
Total votes 22: ↑16 and ↓6 +10
Comments 28

Подготовка к сертификационному экзамену Microsoft 70-483 «Programming in C#»

Reading time 13 min
Views 102K
Programming *.NET *Visual Studio *C# *

Во время подготовки к экзамену номер 70-483 нашел множество разрозненных сайтов с различными ссылками на мануалы, которые мне немного помогли. Но, что помогло мне больше, так это то, что я составил для себя памятку на нескольких страницах, выдержками из которой и хочу поделиться.
Целью не является подробное описание C#, целью является освежить в памяти и заострить внимание на некоторых необходимых темах. Если какие-то темы вам незнакомы, то это значит, что у вас есть пробелы, которые необходимо устранить.
Раскрывать вопросы тестирования я не могу (да и не помню я уже их), но, если многие из перечисленных ниже нюансов, трюков и тонкостей, помогут вам, то вы на меня не обижайтесь (написано с иронией).
Читать дальше →
Total votes 50: ↑39 and ↓11 +28
Comments 17

Лайфхаки для веб-разработчика

Reading time 3 min
Views 44K
Website development *Programming *
Обожаю трюки и лайфхаки. Каждый раз радуюсь, когда удается упростить очередную рутинную операцию. А так как работаю я, вот уже 8 лет, веб-программистом, то рутинные операции и лайфхаки у меня программерские. Вот этим и хочу с вами поделиться.
Часть трюков до меня уже описали на хабре, часть я взял из других источников, часть придумал сам. Буду благодарен если в комментариях к посту вы напишете, какие трюки используете вы.

Использование ** в zsh


Таким образом я ищу файлы в папке по расширению рекурсивно:
ls **/*.json

файлы с размером выше чем 1 мегабайт:
ls -lh **/*(Lm+1)

Быстро и уверенно удаляем мусор из репозитория в python проекте и судорожно правим. gitignore:
git rm --cached **/*.pyc


Читать дальше →
Total votes 55: ↑35 and ↓20 +15
Comments 51

Грязные трюки мобильной разработки от J2ME до Android

Reading time 6 min
Views 28K
Lesta Studio corporate blog Programming *Development of mobile applications *Game development *

Сколько помню разработку игр для мобилок, всегда приходилось изобретать какие-то ухищрения, чтобы все достойно работало. Сталкивались с этим 15 лет назад, когда писали игры еще под черно-белые телефоны, сталкиваемся и сейчас. Уверен, что огромный набор подобных трюков существует в разработке игр для десктопов и, тем более, консолей. Но я занимаюсь именно мобилками, поэтому речь пойдет о них.


Читать дальше →
Total votes 35: ↑32 and ↓3 +29
Comments 32
1