Как стать автором
Поиск
Написать публикацию
Обновить
4
1.6

системный инженер

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

Программирование Древа Времен

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


Введение


Прочитав статьи TimeCoder — «Путешествия во времени и программирование» [1, 2] я вспомнил свои скромные практические исследования в программировании, связанные с реализацией разветвляющихся миров. Однажды товарищ по работе подкинул мне интересную задачу, но решить я ее до сих пор не смог. Задача о том, как нагрузить станки на производстве. Даже не программисту было понятно, что нужен простой перебор, но я так и не смог придумать подходящую структуру данных для обеспечения вычисляющего алгоритма. Задача из реального мира, поэтому я решил попробовать реализовать в программе реальный мир в той части, который требуется для вычисления задачи. Каждый раз, когда в дальнейших вычислениях стоял выбор между двумя действиями — происходило «создание двух новых миров» с разным решением в каждом. Дальше каждый мир развивался своим путем.

Под катом я расскажу, как развивалась идея, и чем мне помог ерланг. Практика — критерий истины!
Читать дальше →

Тёплый ламповый свет

Время на прочтение4 мин
Количество просмотров142K
Ночь. Компьютер. Интернет.
Три часа, а сна всё нет.

Если вам знакомо состояние, когда засидевшись за компьютером допоздна, вы не ощущаете усталости и не хотите спать, этот пост для вас. В нём попробуем ответить на два классических вопроса: «кто виноват?» и «что делать?».

Мы стали меньше спать


Сравнительно недавно нормальным считался восьмичасовой ночной сон. Современный человек сократил эту норму на четверть и спит в среднем шесть часов в сутки. Немалую роль в сокращении продолжительности сна сыграл компьютер.

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

Недосыпание может спровоцировать болезни сердца и нервной системы. Человек, спящий менее 7 часов, теряет до 30% иммунных клеток, защищающих организм. Последствиями недосыпания могут стать проблемы со зрением, раздражительность, депрессия. Увеличивается вероятность возникновения сахарного диабета, онкологических заболеваний.
Читать дальше →

FileAPI 2.0: Загрузка файлов на сервер год спустя

Время на прочтение11 мин
Количество просмотров70K
FileAPI 2.0Привет Хабр! Примерно год назад я представил вашему вниманию первую версию open-source библиотеки FileAPI, предназначенную для работы с файлами на клиенте и последующей загрузки на сервер.

За это время был пройден долгий путь. Библиотека заработала 670+ звезд и 90+ форков. С помощью github-сообщества удалось исправить множество «детских» проблем и внести ряд улучшений. Было закрыто более 100 тасков, и благодаря Илье Лебедеву сделана загрузка файлов по частям. Сегодня я с гордостью хочу представить вам FileAPI 2.0.
Читать дальше →

Работаем асинхронно в PHP или история ещё одного чата

Время на прочтение8 мин
Количество просмотров37K
Меня очень радует, как бурно развивается PHP последние несколько лет. Наверное и вас тоже. Появляются постоянно новые возможности, удерживающие энтузиастов оставаться на данной платформе. Чего только стоит недавняя новость о релизе Hack.

Наверняка кто-то прочитав даже заголовок этой статьи ухмыльнется и подумает: «Мсье знает толк в извращениях!». Споры о крутости того или иного языка никогда не утихают, но как бы там ни было, лично я для себя вижу не так уж и много условий смены языка, поскольку люблю выжимать все возможности, прежде чем радикально сменить весь стек. Недавно была публикация о создании чата на Tornado и мне захотелось рассказать о том, как похожую задачу я решал при помощи PHP.

Предыстория

В один прекрасный день решил я познакомиться с WebSockets. Меня заинтриговала технология, хотя не сказать бы, что она появилась только вчера, и это совпало с запуском одного чат-сервиса соционической тематики, который страдал массой недостатков. Это придало мне азарт принять участие в конкурентной гонке. Использование веб-сокетов выглядело принципиально новым и многообещающим решением.
Читать дальше →

[видео] 8 способов противостояния формуле нужды

Время на прочтение1 мин
Количество просмотров62K
Статья про формулу нужды с моей печальной историей про хитрого прораба и неопытного ИТ-менеджера получила неожиданно позитивный отклик. По этому поводу мы решили пойти дальше и записали небольшое видео, что делать, чтобы не попасть в эту формулу. Как противостоять давлению, которое на вас может оказывать оппонент.

Нам удалось заманить в студию Дмитрия Коткина, руководителя Санкт-Петербургской школы переговорщиков ШиП, который имеет широкий опыт переговоров — от работы в политике до консультирования IT-компаний. Несмотря на температуру, Дима продержался в кадре 20 минут и рассказал, как профессиональные переговорщики рекомендуют противостоять формуле нужды:



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

[видео] Как поставить человека на место: 10 реальных вопросов про давление в переговорах

Время на прочтение2 мин
Количество просмотров229K
Видео про 8 способов противостояния формуле нужды оказалось неожиданно популярным, набрав 8,000 просмотров за два дня. Мы решили продолжить тему.

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

Мы отобрали 10 самых любопытных, на наш взгляд, вопросов в этой теме и снова заперли в студии Дмитрия Коткина, руководителя Санкт-Петербургской школы переговорщиков ШиП и нашего хорошего друга, чтобы он рассказал, что конкретно делать:



10 реальных ситуаций, которые удалось осветить — под катом:

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

Windows-приложения в веб-браузерах пользователей. Свое облако с блэк-джеком и т.д

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

Идея запускать приложения не на компьютере пользователя, а на удаленном сервере, и транслировать изображение пользователю по сети – не нова, и давно «витает в воздухе». Согласитесь, идея хорошая: ведь для установки любого нового ПО на свой компьютер необходимо разобраться с политикой лицензирования (кому это актуально), найти дистрибутив (желательно, без вредоносного ПО внутри), установить и настроить ПО — иногда просто руки опускаются. Кроме того, подход с трансляцией ПО снимает необходимость в своем производительном «железе», что становится актуальным в свете ежегодного роста продаж планшетных компьютеров и смартфонов. Да и интернет есть повсюду в мегаполисах: слушать музыку и смотреть кино онлайн, в конце концов, все уже давно привыкли.

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

Логика мышления. Часть 2. Факторы

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


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

Логика мышления. Часть 1. Нейрон

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


Года полтора назад я выкладывал на Хабр цикл видеолекций с моим видением того как работает мозг и каковы возможные пути создания искусственного интеллекта. За прошедшее с тех пор время удалось существенно продвинуться вперед. Что-то получилось глубже понять, что-то удалось смоделировать на компьютере. Что приятно, появились единомышленники, активно участвующие в работе над проектом.

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

Пишем электронную музыку. VSTi синтезаторы

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


Сейчас обычного компьютера вполне достаточно для создания качественной электронной музыки. Многие пробовали писать свою музыку, интересовались этой темой. Возникло желание поделиться своим опытом. Первая статья из серии будет на важнейшую тему — VSTi синтезаторы.

Что такое VSTi? Зачем нужны VSTi? Почему не хватит одних только семплов для создания качественной музыки?

Во-первых: такого семпла, который звучал так как хочешь, еще нужно найти. А это не так просто. Естественно существуют продакшен-библиотеки с готовыми мелодическими лупами, но в таком случае создание музыки подобно складыванию конструктора лего.

Во-вторых: семплу нельзя так же просто изменять звучание как звуку синтезатора.

В-треьих: при игре с семплом при помощью миди-клавиатуры стоит учитывать возможные артефакты, такие как алиасинг, разная длительность нот.

Семплы, конечно же, используються в ряде VSTi — семплерах и ромплерах, где например может быть засемплировано пианино или гитара. Что не возможно качественно создать одним синтезом. Но занимают много места и не имеют возможности полностью изменять звук как генерированые синты.

Как же можно создавать свое звучание?
Читать дальше →

На электричестве до Крыма

Время на прочтение7 мин
Количество просмотров256K
«Сколько жрёт, сколько прёт и где тут двигатель» — классические вопросы на каждом светофоре. Е-байк, летящий по проспекту со скоростью 80км\ч, рвёт шаблоны соседей по потоку раз и навсегда. Но то сугубо утилитарные поездки, не отличающиеся особой автономией. Сама идея о загородном вояже может показаться абсурдной. В первую очередь мыслью – «А где в пути искать розетки?». Но обо все по порядку. Хотя самые ленивые могут сразу смотреть последний ролик.
Типичная дальнобойность самодельного электровелосипеда не превышает 50км (серийные муляжи со свинцовыми аккумуляторами даже не рассматриваются). Литий и только литий. В среднем надо около 1Квтч электричества на преодоление указанной выше дистанции при 50км\ч. Пословица «тише едешь – дальше будешь» актуальна как никогда. При междугородних перегонах требуется покрывать 100-150км, отсюда вытекает требование к набортной емкости 2.5+Квтч. Это довольно серьезная емкость, поэтому первым шагом стала замена батареи на более «долгоиграющую». Так возник проект «Крымский чемодан», 240 элементов 18650 Li-ion LG D1:



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

DevDocs: вся документация разработчика в одном месте, с быстрым и удобным интерфейсом

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


Сайт devdocs.io — проект французского программиста Тибо Курубля. Здесь собрана и упорядочена документация по наиболее популярным веб-технологиям, фреймворкам и API, и многим другим средствам разработки. DOM, HTML, JavaScript, jQuery, Node.js, PHP, Ruby, Python, Git, Angular, Backbone, CoffeScript, Less, Sass, Redis и много чего ещё… Всё оформлено в едином стиле, по всей базе документации работает поиск, в том числе нечёткий. Есть возможность выбрать только необходимые технологии, по которым надо искать. Вообще, интерфейс DevDocs радует — ничего лишнего, всё очень понятно и функционально, доступно множество клавиатурных сокращений.
Читать дальше →

Настройка VPN-сервера SoftEtherVPN под Linux

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

      Как уже писалось на хабре, буквально в начале января сего года под лицензию GPL2 перешел очень интересный и, в своем роде, уникальный проект — SoftEther VPN. Написали его студенты японского University of Tsukuba. Данный продукт позиционирует себя как VPN-сервер с поддержкой огромного количества туннельных протоколов: L2TP, L2TP/IPsec, L2TPv3/IPsec, MS-SSTP, EtherIP/IPsec, OpenVPN, SSL-VPN (собственной разработки), L2VPN, а также такие хитрые штуки как туннелирование через ICMP и DNS. Поддерживает туннелирование как на третьем, так и на втором уровне, умеет VLAN и IPv6. Работает практически на всех известных платформах (даже ARM и MIPS) и к тому же не требует рутовых прав. С полной спецификацией можно ознакомиться вот тут. Если честно, когда я увидел список возможностей этой проги — я просто не поверил своим глазам и подумал: «Если ЭТО работает, то я ДОЛЖЕН это потестить!»
      Эта статья будет описывать процесс установки и настройки SoftEther VPN Server под Линукс. В следующей статье постараюсь нарисовать красивые сравнительные графики производительности.
Читать дальше →

Технологии в ролевых играх. Часть 2. Технология и техноген

Время на прочтение6 мин
Количество просмотров23K
Технологии в ролевых играх. Часть 1. Технология и магия
Технологии в ролевых играх. Часть 3. Технология в антураже и мастеринге

В первой части мы рассмотрели возможности современной электроники для моделирования магических взаимодействий на ролевых играх. Однако, взаимодействия на РИ магическими не исчерпываются. Сейчас проходит достаточно много техногенных игр, в которых сама техника как таковая играет очень важную роль.

Перечислим ситуации, в которых современные технологии могут стать частью игрового процесса:
  • Игротехническое конструирование
  • Игротехническое моделирование процессов
  • Игротехническая коммуникация
  • Технические и техногенные объекты и артефакты

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

Технологии в ролевых играх. Часть 3. Технология в антураже и мастеринге

Время на прочтение6 мин
Количество просмотров30K
Технологии в ролевых играх. Часть 1. Технология и магия
Технологии в ролевых играх. Часть 2. Технология и техноген

Технологии и антураж



Показанные в предыдущих частях технические устройства антуражны сами по себе, и их применение значительно повышает реалистичность игрового процесса. Возможно так же применение технологий, не участвующих непосредственно в игровом процессе, но тем не менее значительно улучшающих антуражность локаций и игроков. Перечислим основные виды устройств, которые можно применить в целях повышения качества антуража:
  • Световые (светодиоды, лазеры, световоды, люминесцентный шнур, уф-подсветка)
  • Звуковые (подзвучка локаций, имитация шумов работы механизмов, прочих шумов)
  • Механические (мехатронные элементы, движущиеся части механизмов)
  • Комбинированные

Так же элементы антуража можно разделить по масштабу применения на элементы уровня локации и элементы уровня игрока.

Приведём примеры. Так самые обычные светодиодные гирлянды смогли преобразить локацию «Фангорн» на ПРИ «Вторая эпоха. Время легенд»:


Фангорн, ПРИ «Вторая эпоха. Время легенд»
Читать дальше →

Сетевое программирование для разработчиков игр. Часть 2: прием и передача пакетов данных

Время на прочтение9 мин
Количество просмотров108K
От переводчика: Это перевод второй статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Первая статья — http://habrahabr.ru/post/209144/



Прием и передача пакетов данных


Введение

Привет, меня зовут Гленн Фидлер и я приветствую вас в своей второй статье из цикла “Сетевое программирование для разработчиков игр”.


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

А сейчас я собираюсь рассказать вам, как на практике использовать UDP для отправки и приема пакетов.

BSD сокеты

В большинстве современных ОС имеется какая-нибудь реализация сокетов, основанная на BSD сокетах (сокетах Беркли).

Сокеты BSD оперируют простыми функциями, такими, как “socket”, “bind”, “sendto” и “recvfrom”. Конечно, вы можете обращаться к этим функциями напрямую, но в таком случае ваш код будет зависим от платформы, так как их реализации в разных ОС могут немного отличаться.

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

Сетевое программирование для разработчиков игр. Часть 1: UDP vs. TCP

Время на прочтение9 мин
Количество просмотров174K
От переводчика: Это перевод первой статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.


Привет, меня зовут Гленн Фидлер и я приветствую вас в первой статье из моей онлайн-книги “Сетевое программирование для разрабочиков игр”.

image

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

Вы, скорее всего, уже что-нибудь слышали о сокетах, и, возможно, знаете, что они делятся на два основных типа — TCP и UDP. Первое, что нужно решить при разработке многопользовательской игры — это какой тип сокетов использовать — TCP, UDP, или оба?
Читать дальше →

Пишем виртуальный буфер обмена на C#

Время на прочтение16 мин
Количество просмотров34K
VirtualClipBoard Очень много приходится работать с текстовыми данными, такими как код, статьи, посты и т.д. В то время когда жил под Linux — пользовался менеджерами истории буфера обмена, которые запоминали, то что попадало в виде текста в буфер и по клику в трее я мог вернуть нужное значение в буфер, не возвращаясь к источнику.
Недавно пришлось большую часть времени проводить в Windows, удовлетворяющей альтернативы для такого простого приложения я не нашел. Что-то в найденных вариантах не устраивало: не свободное ПО, много ненужного функционала (который просто мешал) или работали неудобно для меня (например: получить предыдущее значение буфера, приходилось открывать окно программы). Недолго думая решил сделать, так как мне хотелось.

Поскольку, приложение должно работать исключительно в Windows, было принято решение написать ее на C# — к тому же, никогда ранее на нем ничего не писал — появился повод попробовать.

Задача


  • Программа должна слушать и запоминать изменения в текстовом буфере обмена.
  • Через контекстное меню в трее или через окно программы по клику на выбранном элементе истории, нужное значение должно автоматически попадать назад в буфер.
  • История не должна пропадать после перезагрузки системы


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

Тульпа — карманная шизофрения для гиков или реальный воображаемый друг

Время на прочтение9 мин
Количество просмотров1.5M
Скажите, вы бы хотели иметь друга? Любого человека или другое существо, которое будет вашим самым лучшим другом, обладая той внешностью, которая вам нравится, и тем характером который вам необходим, которое не надо будет делить с ее или его друзьями, родителями, собачкой, игрушками или учебой.
А секретаря, который всегда с вами, имеет прямой доступ к вашей памяти, напомнит, подскажет, и подаст нужную идею, напарника для мозгового штурма?
Тогда добро пожаловать под кат.



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

Информация

В рейтинге
2 664-й
Зарегистрирован
Активность

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

Администратор серверов, Сетевой инженер
Средний