Как стать автором
Обновить
0
0

Dark side eye. А у нас печеньки! А у вас?

Отправить сообщение

node-sync — псевдо-синхронное программирование на nodejs с использованием fibers

Время на прочтение6 мин
Количество просмотров21K
Надавно была опубликована библиотека node-fibers, вносящая в nodejs и v8 поддержку замечательного fiber/coroutine — тоесть, возможность использовать yield.
Параллельно, на nodejs groups прошел целый ряд обсуждений на тему всевозможных вариантов упрощения асинхронного синтаксиса.

Вдохновившись возможностями, которые дают «волокна», я написал библиотеку node-sync, которая делает разработку в асинхронном окружении nodejs значительно удобнее, а код — нагляднее.

Синопсис

// Обычная асинхронная функция, вызывает callback с результатом через 1 сек
function someAsyncFunction(a, b, callback) {
    setTimeout(function(){
        callback(null, a + b);
    }, 1000)
}
// Вызываем эту функцию синхронно, используя Function.prototype.sync(),
// работающий по тому же принципу, что и call()
// на этом моменте текуший поток "зависнет" на секунду, пока функция не вернет значение
var result = someAsyncFunction.sync(null, 2, 3);
console.log(result); // "5" через 1 секунду

Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии50

SanDisk и HP начинают совместную работу над технологией Memory-Driven Computing

Время на прочтение5 мин
Количество просмотров12K
8 октября 2015 года SanDisk Corporation и HP объявили о начале долгосрочного партнёрства, которое направлено на разработку новой технологии в категории SCM (Storage Class Memory). Ядром сотрудничества станут наработки Hewlett-Packard в области создания запоминающего устройства, основанного на концепции мемристора, и опыт SanDisk, связанный с энергонезависимой памятью ReRam.



Усилия компаний в данном проекте направлены на создание новых корпоративных решений, построенных по технологии Memory-Driving Computing. Это – компьютерная архитектура, в которой память играет ключевую роль в выполнении вычислений. Кроме того, сотрудничество будет распространяться и на оснащение решений HP для центров обработки данных твердотельными накопителями (SSD, Solid State Drives) от SanDisk.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии20

Достаточно Git-а, чтобы быть (менее) опасным

Время на прочтение23 мин
Количество просмотров131K
imageТы просто-напросто ненавидишь Git? Ты абсолютно счастлив с Mercurial (или, фу, с Subversion), но раз в месяц тебе приходится отважно сталкиваться с Git, потому что каждый, даже его чертова собака, теперь использует GitHub? Тебя терзают смутные подозрения, что половина всех команд Git на самом деле удалят всю твою работу навсегда, но ты не знаешь какие именно и не хочешь проводить три недели, углубляясь в документацию?

Хорошие новости! Я написал тебе этот изумительный Интернет-пост. Я надеюсь, что смогу размазать достаточно Git-а по твоему лицу, чтобы понизить вероятность сделать что-то непоправимое, а так же уменьшить твой страх что-то сломать. Этого должно быть также достаточно, чтобы сделать документацию Git немного более понятной; она крайне тщательно и глубоко проработана и очень глупо, если ты все еще не прочитал половину.

Я постараюсь излагать коротко, но также, чтобы это было потенциально полезно тем людям, кто вообще никогда не сталкивался с контролем версий, поэтому повсюду будет разбросан 101 совет. Не бойся! Я не думаю, что пользователи Mercurial понятия не имеют, что такое патч.
Но подожди! Там еще...
Всего голосов 131: ↑103 и ↓28+75
Комментарии365

Зачем нужен свободный код и как на нем зарабатывать

Время на прочтение5 мин
Количество просмотров67K
Linux Torvalds
Мы наблюдаем бум свободных проектов. В основном, благодаря Гитхабу. 23 декабря 2013 года на сервисе был создан 10-миллионный проект. К 23 декабря 2015 года количество проектов более чем утроится: прямо сейчас на Гитхабе 28 миллионов проектов.

Многих привлекает идея свободности, потому что она перекликается с идеей «улучшения мира», как основной мотивации продуктивной деятельности человека.

Но так как обычная работа программистов в конторах очень далека от open source, возникает вопрос, как кормиться (а желательно, и разбогатеть!), большую часть времени занимаясь свободными проектами.

Судя по последним вопросам на Тостере, у людей много ожиданий, но мало понимания в этой области. Поэтому я решил написать это эссе.

Само по себе выкладывание проекта не является улучшением мира


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

Вы выложили код. Чем вы помогли экономике в этот момент? Ничем, поэтому и миру вы пока ничем не помогли.

Ваш проект может спасать людей от рака, быть бесплатным, экономить миллионы долларов, и при этом быть закрытым.

Сконцентрируйтесь не на том, чем вообще полезен ваш проект, а чем полезна его свободность.

Синергетический эффект свободного кода


Читать дальше →
Всего голосов 89: ↑68 и ↓21+47
Комментарии108

Повышение квалификации руководителей. Обучение практике Кайдзен на стажировке в Японии

Время на прочтение10 мин
Количество просмотров22K
Кайдзен, кайдзэн (яп. 改善 Kaizen) — японская философия или практика, которая фокусируется на непрерывном совершенствовании процессов производства, разработки, вспомогательных бизнес-процессов и управления, а также всех аспектов жизни.

Последние десятилетия Кайдзен стал философией ведения бизнеса для страны Восходящего Солнца. Культура и философия жизни Японии подразумевает непрерывное развитие человека, а в рамках его трудовой деятельности — постоянное совершенствование и оттачивание навыков. Для сознательного японца это является таким же естественным процессом, как и дыхание. Нет предела совершенству — фраза наиболее близкая нам для понимания того, что же такое Кайдзен.

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

Но производственная культура Японии и на Toyota в частности — это не только один лишь Кайдзен, лежащий в основе японского подхода к труду, которым они охотно делятся с руководителями всего мира.

Под катом много интересного и фото. Трафик.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии27

Как продавать крупным компаниям: 16 советов. Часть 1

Время на прочтение8 мин
Количество просмотров51K
При продаже своих услуг или программных продуктов крупным предприятиям и корпорациям нужно выработать совсем другой подход, чем тот, который используется с малым и средним бизнесом. Мы в Alconost перевели для вас советы Тима Нгуена, который построил свою карьеру, продавая различные продукты компаниям среднего, крупного и корпоративного сектора, в том числе кредитным союзам и банкам по всей Америке. В среднем сумма сделки составляла 500 тыс. долларов ежегодно, при этом худшим результатом было 25 тысяч, а лучшим – 7 млн. долларов за год. Мы думаем, что советы Нгуена применимы не только к американскому рынку – хотя к нему в особенности.


Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии6

16 причин, по которым игроки уходят из вашей игры

Время на прочтение6 мин
Количество просмотров49K
image

Игроки уходят из игр. Согласно одному из источников, в среднем менее 40% игроков возвращаются в бесплатную игру после первого раза. Важнейшая задача гейм-дизайнера – создать захватывающий продукт. Мы делаем игры для того, чтобы в них интересно было играть. Если они бросают наши игры слишком часто и быстро, мы не справились с задачей.

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

Наша задача, как гейм-дизайнеров – подойти к разработке со стороны позитивной психологии. Удержание игроков сводится к разработке продукта, создающего состояние потока. Не стоит путать это с казуалками или играми, построенными на повторении простых задач. В статье я собрал материал для чек-листа – причины, по которым игроки могут покидать игру, перечислены в порядка убывания важности. Убедитесь в том, что вы проверили все пункты списка.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии41

PE (Portable Executable): На странных берегах

Время на прочтение18 мин
Количество просмотров157K


Эта статья представляет из себя рассказ о том как устроены исполняемые файлы (в точку! Это именно те штуки, которые получаются после компиляции приложений с расширением .exe). После того, как написан код, подключены библиотеки, подгружены к проекту ресурсы (иконки для окон, какие-либо текстовые файлы, картинки и прочее) всё это компонуется в один единственный исполняемый файл, преимущественно с расширением .exe. Вот именно в этот омут мы и погрузимся.
*Статья находится под эгидой «для начинающих» поэтому будет изобиловать схемами и описанием важных элементов загрузки.
На палубу
Всего голосов 37: ↑32 и ↓5+27
Комментарии22

Tabris.js — быстро знакомимся и пишем Hello World

Время на прочтение9 мин
Количество просмотров19K

Tabris.js — еще один кросс-платформенный (Android, IOS) мобильный фреймворк. От подавляющего большинства подобных инструментов он отличается тем, что это не обертка над стандартным или Chrome-based WebView. Tabris предоставляет собой набор нативных компонентов, доступный из javascript. Ближайшие аналоги из мне известных это: Telerik Native Script, Appcelerator и React Native.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии13

Обработка столкновений с алгоритмом и реализацией

Время на прочтение11 мин
Количество просмотров42K
Привет, Хабр!

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


Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии25

Установка и настройка генерации тайлов на основе OSM данных под Windows

Время на прочтение6 мин
Количество просмотров28K

Дисклеймер


Недавно по работе возникла задача генерации тайлов на основе OSM данных. Поискал, прочитал несколько статей, но везде фигурировали *nix-системы, а у меня был в наличии сервер под управлением Windows. В конце-концов, более-менее внятный туториал нашёлся, но он слегка устарел и не везде подробен, посему пришлось повозиться. После удачного завершения подумал, что мой опыт будет полезен.

Кого заинтересовал, прошу под кат.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии11

Как сверстать интерактивные вкладки в email-письме

Время на прочтение9 мин
Количество просмотров17K


В нашем блоге мы уже неоднократно рассказывали о создании интерактивных email-рассылок с помощью CSS и HTML. Сегодня мы представляем вашему вниманию адаптированный перевод заметки Джастина Ку о том, как сверстать интерактивные вкладки, которые будут работать в почтовых программах iOS, Android и популярных веб-приложениях.
Читать дальше →
Всего голосов 27: ↑18 и ↓9+9
Комментарии26

Microsoft добавил средство сбора телеметрии в Windows 7/8/8.1

Время на прочтение1 мин
Количество просмотров301K
Сегодня на MS Windows 7 и 8.1 прилетели обновления KB3080149 и KB3075249. Телеметрическая информация передаётся на следующие сервера:
vortex-win.data.microsoft.com
settings-win.data.microsoft.com

Передача осуществляется через TCP по порту 443 с использованием SSL.
Для параноиков людей, беспокоящихся о несанкционированной передаче информации Microsoft (далее возможно и третьим лицам), предлагаю добавить сервера в список исключений маршрутизатора, а следующие строчки в файл hosts (%windir%\System32\drivers\etc\hosts):
127.0.0.1 vortex-win.data.microsoft.com
127.0.0.1 settings-win.data.microsoft.com
Всего голосов 86: ↑76 и ↓10+66
Комментарии279

Охрана периметра: Скизел vs. Скайнет

Время на прочтение5 мин
Количество просмотров20K
Не только я понимаю, что восстание машин не за горами, и до того, как «Скайнет» обретёт самосознание, остались считанные месяцы. Поэтому вопрос того, как защитить свой блиндаж, важен как никогда.



Для того чтобы узнать, как защитить периметр с помощью охранного датчика Гюрза-035ПЗ, пожалуйста, под кат.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии35

«Хозяин, напиши для нас приложение». Требуется разработчик софта и железа для дронов DJI

Время на прочтение9 мин
Количество просмотров33K

Китайцы начали «пылесосить» сначала Китай, а теперь и весь мир, чтобы найти гениальных разработчиков приложений для своих дронов.

В 2014, сразу после того как DJI (китайский Google в области дроностроения) представили пакет средств для разработки (SDK), прошла первая олимпиада по разработке софта для дронов. Победители получили 100 000 юаней (около 900 000 руб). О первых трех местах — под катом.

В 2015 стартовала вторая олимпиада для программистов уже со всего мира. Итоги ее мы узнаем в конце лета.

Есть несколько проектов, которые, используя SDK от DJI, выпустили очень востребованные и коммерчески успешные программы для дронов.

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

А может быть вы хотите сделать 3d-скан горы Маттерхорн (4478м)?

Всех желающих написать софт для страж-птицы, добро пожаловать под кат. Иначе это сделают китайцы.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии12

Магия тензорной алгебры: Часть 1 — что такое тензор и для чего он нужен?

Время на прочтение7 мин
Количество просмотров359K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение



Это было очень давно, когда я учился классе в десятом. Среди довольно скудного в научном плане фонда районной библиотеки мне попалась книга — Угаров В. А. «Специальная теория относительности». Эта тема интересовала меня в то время, но информации школьных учебников и справочников было явно недостаточно.



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



Читать дальше →
Всего голосов 60: ↑58 и ↓2+56
Комментарии89

Новости проекта Qucs: доступен кандидат в релизы с поддержкой моделирования схем в SPICE

Время на прочтение6 мин
Количество просмотров18K
Qucs — это симулятор электронных схем с открытым кодом. О нём рассказывают мои предыдущие статьи на хабре.

Сейчас наш проект готовится к следующему релизу 0.0.19, который выйдет в ближайшие недели. Данная заметка содержит обзор наиболее ожидаемого за все последние годы нововведения: поддержки моделирования схем Qucs в SPICE-совместимых симуляторов.

Qucs использует ядро моделирования Qucsator, разработанное с нуля. Это ядро имеет много преимуществ (моделирование S-параметров, расширенный постпроцесоор), но также имеет многочисленные баги, связанные с моделированием во временной области (Transient analysis). Эти баги в частности не позволяют моделировать в Qucs силовую электронику. Теперь в Qucs можно смоделировать, например такую схему:



Скачать пакеты для Linux и Windows с поддержкой Ngspice можно здесь:
github.com/ra3xdh/qucs/releases/tag/0.0.19S-rc1

UPD от 21.10.15: сейчас доступен RC3: github.com/ra3xdh/qucs/releases/tag/0.0.19S-rc3

Буква «S» в номере релиза означает SPICE. По-видимому вместе с релизом 0.0.19 выйдет два набора пакетов: с индексом «S» и с обычной нумерацией, так как дальнейшая судьба spice4qucs неясна.

Документация для spice4qucs находится здесь: qucs-help.readthedocs.org/en/spice4qucs

Под катом будет кратко рассмотрено использование spice4qucs.

Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии11

Определяем пользователей VPN (и их настройки!) и прокси со стороны сайта

Время на прочтение6 мин
Количество просмотров172K
W.I.T.C.H.
We can save the day from dark, from bad
There's no one we need


Многие из вас используют VPN или прокси в повседневной жизни. Кто-то использует его постоянно, получая доступ к заблокированным на государственном или корпоративном уровне ресурсам, многие используют его изредка, для обхода ограничений по географическому положению. Как вы можете знать, крупные интернет-игроки в сфере стриминга видео, музыки и продажи игр никогда не любили пользователей, которые легко обходят географические ограничения, разблокируя недоступный в их стране контент, или совершая покупки заметно дешевле. За примерами не нужно далеко ходить: Netflix изменил свое соглашение об использовании, добавив пункт о блокировке VPN, всего 2 месяца назад; Hulu тоже грешил блокировкой пользователей, а Steam вообще подозрительно смотрит на не-русскоязычных пользователей из России. В последнее время, компании пытаются блокировать уже не конкретных пользователей, а сами IP-адреса VPN-сервисов, создавая определенные неудобства уже самому VPN-сервису и его пользователям. Похоже, они не используют никаких спецсредств, а блокируют выборочно и вручную. Хоть я и не поддерживаю какие-либо блокировки вообще, меня заинтересовала техническая часть вопроса: можно ли как-то определить использование прокси-серверов и VPN со стороны сервера, не прикладывая особых усилий?
Можно, при определенных условиях. И достаточно точно.
Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии84

Искусство командной строки

Время на прочтение15 мин
Количество просмотров250K


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Всего голосов 127: ↑122 и ↓5+117
Комментарии143

Работа с буфером обмена

Время на прочтение4 мин
Количество просмотров17K
Прочитав заголовок, Вы, наверное, очень удивились.
Ведь казалось бы, все предельно просто — есть объект Clipboard, есть его статические методы (вроде SetText/SetData и GetText/GetData), чего еще для счастья нужно?

Однако, на практике все просто лишь до тех пор, пока Вы копируете или вставляете только базовые объекты, вроде текста или bitmap-картинки. Что же случается, когда нужно оперировать более сложной структурой?

Лично я недавно столкнулся с необходимостью копировать «гиперссылки», которые потом должны легко вставляться в Word/Outlook/любую другую программу. Причем, не полагаясь на то, что программа-получатель сама определит во вставленном тексте ссылку и не преобразует в нужный формат. Поэтому и рассмотрим работу на примере гиперссылки (алгоритм действий для любого другого формата будет аналогичным).

Итак, с чего же начать?
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии15

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Application Developer, Software Architect
Lead