Pull to refresh
0
@Tostal0sread⁠-⁠only

Пользователь

Send message

Браузерные расширения для GitHub, которые увеличат продуктивность вашей работы

Reading time3 min
Views19K


Сейчас GitHub — самый популярный среди разработчиков сервис для совместной разработки программного обеспечения и размещения исходников в «облаке». Его используют как независимые разработчики, у которых в портфолио 1-2 приложения, так и технологические гиганты, включая Microsoft, Google и Facebook, у которых тысячи проектов.

Собственно, рассказывать на Хабре о том, что такое GitHub, смысла нет; этот пост посвящен его браузерным расширениям, которые позволяют увеличить скорость и продуктивность работы. Вообще говоря, расширений этих очень много, поэтому мы выбрали те из них, которые используем в своей работе сами или которые порекомендовали коллеги.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments6

За один проход

Reading time7 min
Views155K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи
Total votes 73: ↑72 and ↓1+71
Comments56

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

Reading time3 min
Views24K


Исследователи из компании China's Netlab 360 заявили про обнаружение тысяч зараженных зловредным ПО роутеров, производителем которых является латвийская компания MikroTik. Уязвимость, которую используют злоумышленники, была обнаружена еще в апреле, причем сама компания уже давно выпустила патч для исправления проблемы.

Но тысячи роутеров остаются уязвимыми и сейчас, поскольку их прошивку никто не обновляет — многие компании и обычные частные пользователи просто не обращают внимание на этот аспект. Что касается общего количества роутеров, то компрометации подверглось около 7,5 тысяч устройств (то, что обнаружили эксперты). Вообще же в сети до сих пор работает около 370 тысяч роутеров, уязвимость в ПО которых еще не исправлена.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments11

Интерактивная карта для веб-приложения за пару часов

Reading time9 min
Views15K

В прошлой статье я кратко рассказала о возможностях kepler.gl — нового Open Source инструмента для визуализации и анализа больших наборов гео-данных.


Варианты карт, созданных с помощью kepler.gl
Рисунок 1. Варианты карт, созданных с помощью kepler.gl (by Uber)


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

Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments1

Для чего программисту Continuous Integration и с чего начинать

Reading time8 min
Views52K
Представьте что в Роскосмосе решили собрать новую ракету не имея при этом чертежей и четкого понимания как ракета должна быть устроена. Отдельный завод занимается корпусом ракеты, отдельный выпускает двигатели, еще один — сопла. Главный менеджер Роскосмоса сказал что он доверяет профессионалам, и мастерски сделегировал всю работу заводам.



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

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

При разработке ПО мы не можем себе позволить долгий этап проектирования, т.к. за это время потеряется бизнес-ценность того что мы пытаемся разработать — нас тупо обойдут конкуренты.

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

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

В 1991 году Гради Буч, видимо, устал от такого безобразия, и предложил делать сборку всего проекта каждый день, чтобы выяснять несовместимости не в день релиза, а пораньше — и назвал этот подход Continuous Integration.
Читать дальше →
Total votes 58: ↑52 and ↓6+46
Comments56

Continuous Integration для самых маленьких

Reading time12 min
Views115K

Вы все еще публикуете проект вручную? Тогда мы идем к вам


Под катом гайдлайн по внедрению CI для .NET проектов «с нуля», включающий:
  1. Автоматические ежедневные сборки
  2. Уведомления о проблемах
  3. Интеграцию с баг-трекером и системой контроля версий
  4. Версионирование продукта
  5. Версионирование базы данных
  6. Автоматизированные выкладки и бекапы

Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments46

Опыт использования LoRaWAN в системе АСКУЭ в реальных городских условиях

Reading time8 min
Views27K
В этой статье изложены результаты опытной эксплуатации системы коммерческого поквартирного учёта энергоресурсов (далее АСКУЭ) в реальных городских условиях на базе отечественного оборудования LoRaWAN.

Наша компания с 2010 г. занимается созданием систем коммерческого и технического учета в ЖКХ. Мы давно и успешно используем «классические» каналы связи и оборудование для создания систем учета. Одним из знаковых проектов компании было создание крупнейшей на тот момент в РФ системы коммерческого общедомового и поквартирнгого учета на 1200 многоквартирных домов в г. Саранске в 2014 году.

В начале 2017 года мы активно начали исследовать LPWAN и IoT технологии. Одно из направлений развития IoT — это радиомодемы с ультранизким потреблением, что позволяет IoT устройствам работать несколько лет автономно от батареи питания и передавать данные на сравнительно большие расстояния. Основными технологиями в данной области являются LoRaWAN и NB-IoT. И если NB-IoT стандарт до сих пор находится в стадии пилотных зон покрытия у сотовых операторов, то оборудование LoRaWAN уже серийно производятся и разворачиваются в России. Именно с LoRaWAN мы и решили провести опытную эксплуатацию и, в случае успешных испытаний, внедрять данную технологию.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments18

Вотериус: Передача показаний воды на телефон по Wi-Fi (4 года от батареек)

Reading time6 min
Views92K


Однажды мне надоело снимать показания счётчиков воды. Можно было поселить рядом со счетчиком магнит и на этом успокоиться, но этот путь я счёл неспортивным.

Мой путь оказался непростым и витиеватым. Но в результате получилось устройство, передающее показания воды по Wi-Fi на телефон. Простое и понятное в использовании и настройке хоть школьнику, хоть гуманитарию пенсионеру. А знакомым со словом «Ардуино» — ещё и несложное для изготовления. Девайс способен работать от батареек четыре года (дольше, чем длились отношения с вашей бывшей). Это ещё и первый открытый проект с такими характеристиками. Заводские аналоги я выписал, их мало, да и ладно с ними.

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

Теперь устройтесь в кресле поудобнее, съешьте ещё этих мягких французских булочек да выпейте чаю. Смотрите красивые фотографии и слушайте мой рассказ о том, что надо учитывать при создании автономных устройств. Но сначала краткое описание Вотериуса.
Читать дальше →
Total votes 127: ↑126 and ↓1+125
Comments205

Знакомство с Timeline в Unity

Reading time12 min
Views33K
[В туториале около 50 МБ изображений, в том числе анимированных GIF]

Чтобы рассказать часть сюжета игры или увлечь игрока, разработчики часто используют катсцены. В некоторых играх создают специально отрендеренные анимированные сцены с моделями высокой детализации, в других же применяют настоящие внутриигровые модели. Благодаря использованию внутриигровых моделей можно сэкономить много средств и времени, потому что вам не придётся создавать новые модели, риги и анимации исключительно для катсцен. Но даже если вы используете уже готовые модели, то это не означает, что нужно жертвовать спецэффектами или драматизмом! В Unity есть мощный инструмент, позволяющий создавать захватывающие катсцены — Unity Timeline!

В этом туториале вы познакомитесь с Timeline и узнаете, как создавать катсцены с анимациями и сменами камер.

Приступаем к работе


Скачайте проект-заготовку и готовый проект отсюда.

Откройте файл Starter Project и загрузите сцену Main. Она будет нашим фундаментом. В ней есть герой, стоящий на башне и глядящий на мир:


С вашей помощью он сможет спрыгнуть с башни, развернуться, подойти к сундуку с сокровищами и пинком открыть его. При этих анимациях камера тоже будет менять своё положение.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments1

Получаем данные со счетчиков Меркурий 203.2Т по RS-485

Reading time3 min
Views32K


Организовать удаленный сбор показаний с электросчетчиков — задача вроде не сложная, счетчики с каждым годом все умнее и умнее и должны сами все отправлять, ан нет, информация конечно есть, но она разрозненная. Производители оборудования видимо тоже хотят зарабатывать на продаже своего ПО. Пишу эту статью чтобы сэкономить время всем, у кого есть похожие задачи.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments23

PropertyGrid в Visual Studio: отображение полей, связанных с коллекциями объектов

Reading time21 min
Views18K
PropertyGrid позволяет отображать разнообразные структуры классов в удобном для редактирования виде и для этого достаточно связать с ним объект вашего класса. Однако, не все конструкции можно сразу отобразить без написания дополнительного кода. В этой статье я хочу рассказать о своем опыте использования PropertyGrid в контексте:
1. Отображение выпадающего списка записей, который собой представляет коллекцию объектов.

image

2. Отображение поля, связанного с коллекцией объектов, вызывающего редактор коллекции.

image

В качестве примера я взял задачу для реализации управления информацией о сотруднике, которую реализует класс Employee.Класс содержит два свойства. Первое — свойство типа JobTitle (должность сотрудника для выпадающего списка), второе – свойство типа JobTitleCollection (коллекция должностей сотрудников для редактора коллекции). Задачей является отображение объекта класса Employee в PropertyGrid так, как показано на двух рисунках в начале статьи, а именно:1. Отобразить поле, в котором пользователь сможет выбрать одну из должностей сотрудника с помощью выпадающего списка как в элементе ComboBox.2. Отобразить поле, которое позволит вызвать редактор связанной коллекции должностей, а после завершения изменения коллекции отобразить должности в PropertyGrid в виде списка.
Рассмотрим подробнее.
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments7

Квантовое будущее: Microsoft Quantum Development Kit

Reading time2 min
Views6.7K
22 июня мы выпустили обновление для нашего open-source Microsoft Quantum Development Kit. Среди нововведений: улучшенный процесс отладки, более быстрое моделирование, а также реализация ряда усовершенствований, предложенных сообществом Q#. Подробнее под катом!

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments1

Сети для самых маленьких. Часть первая (которая после нулевой). Подключение к оборудованию cisco

Reading time12 min
Views637K


Тематику cisco на хабре нельзя назвать популярной, зачастую интересные статьи остаются почти незамеченными. Но нас приятно удивил ажиотаж вокруг нашей предыдущей публикации. Больше тысячи человек добавили её в избранное, и это определённо говорит о том, что продолжение необходимо.
Кроме того, много людей, имеющих опыт реального планирования и строительства сетей, делали очень правильные замечания по резервированию. Дело в том, что предложенная в прошлый раз схема сети — это макет, лаборатория, на который мы будем отрабатывать и понимать технологии, поэтому такими вещами мы не озадачивались. В реальной же жизни, особенно, если вы оператор связи/провайдер, необходимы различные схемы резервирования: VRRP, STP, Link Aggregation, протоколы динамической маршрутизации.
Все замечания мы постараемся учесть и в конце цикла, вероятно, рассмотрим то, как сеть должна строиться, чтобы через полгода после запуска инженеру не было мучительно больно.

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

Под катом то же в текстовой и чуть более подробной форме.
Итак, вот они приехали — заветные коробки с надписью Cisco на борту.
Что дальше?
Total votes 74: ↑65 and ↓9+56
Comments76

36 материалов о нейросетях: книги, статьи и последние исследования

Reading time8 min
Views115K
Что делать, если хочется побольше узнать про нейронные сети, методы распознавания образов, компьютерное зрение и глубокое обучение? Один из очевидных вариантов — подыскать для себя какие-либо курсы и начать активно изучать теорию и решать практические задачи. Однако на это придется выделить значительную часть личного времени. Есть другой способ — обратиться к «пассивному» источнику знаний: выбрать для себя литературу и погрузиться в тему, уделяя этому всего полчаса-час в день.

Поэтому, желая облегчить жизнь себе и читателям, мы сделали краткую подборку из книг, статей и текстов по направлению нейросетей и глубокого обучения, рекомендуемых к прочтению резидентами GitHub, Quora, Reddit и других платформ. В неё вошли материалы как для тех, кто только начинает знакомство с нейротехнологиями, так и для коллег, желающих расширить свои знания в этой области или просто подобрать «легкое чтение» на вечер.

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments9

MVC Framework: большое введение для начинающих

Reading time16 min
Views80K
Необходимое отступление: не так давно я разместил статью предназначавшуюся для печатного издания. Приведенная ниже статья имеет ту же самую судьбу: она не попала в печать в связи с тяжелым положением журнала. Как и в прошлый раз, я решил опубликовать статью на Хабре, благо тематика попадает под формат. Необходимо заметить, что статья оформлена и содержит текст для журнала, если бы она готовилась для Хабра, то некоторые часть могли бы быть изменены. Надеюсь, статья вам понравится.

В последнее время заметно, что компания Microsoft уделяет повышенное внимание развитию своих средств разработки, новым инструментам и механизмам разработки программ на своей платформе .net. Быстро развивается язык C#, четвертая версия которого не за горами. Представлен и активно продвигается новый язык F#. Для разработчиков баз данных разработан Entity Framework, который уже доступен в виде финальной версии в первом сервиспаке к .Net Framework 3.5 и Visual Studio 2008. Microsoft активно занялась и клиентской частью разработки web-проектов. Для нашего внимания предложен путь развития Ajax.Net 4.0. Internet Explorer 8 все больше соответствует стандартам и становится привлекательным инструментом для web-программистов, так например, его вкладка Developer Tools включает в себя профайлер JavaScript. Очень хорошей новостью стало недавно объявление о полной поддержке и включении JavaScript-библиотеки jQuery в следующее обновление Visual Studio. В этом свете возникает вопрос, что же предложено разработчикам ASP.NET? Ответ — MVC Framework. Целью данной статьи рассмотреть некоторые общие проблемы, с которыми могут столкнуться программисты, решившие использовать MVC Framework для своих web-проектов, и их решения.
Читать дальше →
Total votes 65: ↑59 and ↓6+53
Comments71

Учимся C#. Ведро второе.

Reading time6 min
Views28K

Результаты отзывов


Немного о C# и *nix


Многих заинтересовало, как же можно писать на C# в *nix системах. Попробую помочь нашим друзьям. Существует проект Mono и вот, что нам говорит Википедиа:
Mono — проект по созданию полноценного воплощения системы .NET на базе свободного программного обеспечения.
Mono включает компилятор языка C# — mcs, среду исполнения .NET — mono (с поддержкой JIT) и mint (без поддержки JIT), отладчик, а также ряд библиотек, включая реализацию ADO.NET и ASP.NET. В рамках проекта также разрабатываются привязки для графической системы GTK+ на платформу .NET.
Среда исполнения mono может исполнять модули, написанные на языках C#, Visual Basic .NET, Java, Boo, Nemerle, Python, JavaScript, PHP и Object Pascal (при наличии компилятора в среду .Net/Mono). Ожидается также поддержка языков C, Ada 2005 и Eiffel.
Реализации Mono существуют для следующих операционных систем: GNU/Linux, Solaris, Mac OS X, Microsoft Windows и Unix.

И это говорит нам о том, что мы спокойно можем программировать практически в любой ОС на C#. Последний релиз Mono Project — 2.2. Mono Project — здесь вы сможете загрузить самую последнюю версию, а так же посмотреть документацию.
Так же есть ещё одна хорошая новость. У группы разработчиков Mono есть дочерний проект — MonoDevelop. Это бесплатная IDE для C# и ASP.NET. Она поддерживает все необходимые функции для успешной и быстрой разработки в *nix системах.

Что там дальше...
Total votes 99: ↑71 and ↓28+43
Comments58

Учимся C#. Ведро первое.

Reading time4 min
Views116K

Привет всем


Я решил начать цикл статей на тему обучения программирования в .NET, а именно на C#. Я не претендую на авторство всего, что здесь и далее будет написано, я всего лишь хочу дать знания тем, кто этого желает.
На Хабре много раз могли заметить мои комментарии по поводу того, что я очень хотел бы обучать людей, но никак не мог придумать как это сделать. После цикла статей MaxElc я подумал, что тоже могу паралельно с ним начать писать.
Пожалуй начнём!

Архитектура .NET


.NET — это среда исполнения или платформа. Она располагается между кодом и Windows, позволяя предоставлять нужные службы. Платформа .NET состоит из двух основных компонентов. Это Common Language Runtime и .NET Framework Class Library.

Common Language Runtime (сокращенно CLR) можно назвать «двигателем» платформы .NET. CLR занимается управлением памятью, компиляцией и выполнением кода, работой с потоками управления, обеспечением безопасности и т.п.

.NET Framework Class Library — это набор классов на все случаи жизни.

Поехали
Total votes 157: ↑121 and ↓36+85
Comments156

По следам highloadcup: php vs node.js vs go, swoole vs workerman, splfixedarray vs array и многое другое

Reading time8 min
Views27K
Рассказ о том как я участвовал в highloadcup (чемпионат для backend-разработчиков) от Mail.Ru, написал на php сервер обслуживающий 10000 RPS, но всё равно не получил победную футболку.


Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments43

Java библиотека для эффективной передачи CSS и JavaScript

Reading time8 min
Views8.9K
В данной статье описывается способ передачи JavaScript и CSS методом соединения ресурсов, с последующими их минимизацией и сжатием, при помощи небольшой Java библиотеки «Combinatorius», что позволяет ускорить и упростить передачу контента.

Демо: combinatorius.dkiriusin.com
GitHub: github.com/deniskiriusin/combinatorius

Основные возможности библиотеки


  1. Соединение JavaScript и CSS в один JavaScript и CSS ресурс соответственно для сокращения количества HTTP запросов.
  2. Локальное кэширование сгенерированных данных для улучшения времени отклика.
  3. Правильные Expires и Cache-Control HTTP заголовки для помощи браузеру с условными запросами.
  4. Поддержка ETag для определения соответствия между кэшем браузера с данными на сервере.
  5. Сжатие методом gzip для уменьшения размера HTTP ответа.
  6. Поддержка YUI Compressor.
  7. Поддержка версий передаваемых ресурсов (fingerprinting & static resources versioning).
  8. Поддержка CSS тем через параметры URL или Cookies.
  9. Простая конфигурация.
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments3

JavaScript F.A.Q: Часть 1

Reading time15 min
Views73K
image

Несколько дней назад мы с TheShock создали топик в котором собирали ваши вопросы, касательно JavaScript (архитектура, фрэймворки, проблемы). Настало время ответить на них. Мы получили очень много вопросов, как в комментариях так и по email. Эта первая часть ответов — те вопросы, которые достались мне.
Читать дальше →
Total votes 232: ↑227 and ↓5+222
Comments50
1

Information

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