Уголовный кодекс разработчика

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


Я сейчас не говорю про «Административный кодекс», куда я как раз и отношу неправильное применение шаблонов, неиспользование тестов, неоптимизированный код, даже харкодинг каких-нибудь настроек и «магические числа» (хотя уже на грани). В этих случаях разная правоприменительная практика. Например оптимизированный код часто сложнее для понимания, чем неоптимизированный. Неоптимальный алгоритм зачастую легче воспринимается при чтении кода, а ведь разработчик 95% времени читает свой или чужой код и только 5% пишет. Или если вы пишите скрипт для друга забесплатно, побыстрее и заходкодили пару настроек, вы скорее всего правильно поступили. Решив, что интеграция туда логики извлечения настроек (и ее тестирования) из отдельных конфигов потребует намного большего времени, чем хардкод.


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

Скидки на приложения и игры для Android: 16 марта

Скидки на приложения и игры актуальны только на момент выхода публикации. В этом выпуске: PRO Lirbi Reader — чудесная читалка, которая удивит вас не только прорвой читаемых форматов, но и рядом крутых […]
Скидки на приложения и игры для Android: 16 марта
Source: 4pda

Пост №3028466

Автор: ColdKeeper

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3028466″ }, «headline»: «деградач :: тамплиеры :: всё хуёво», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%B4%D0%B5%D0%B3%D1%80%D0%B0%D0%B4%D0%B0%D1%87-%D1%82%D0%B0%D0%BC%D0%BF%D0%BB%D0%B8%D0%B5%D1%80%D1%8B-%D0%B2%D1%81%D1%91-%D1%85%D1%83%D1%91%D0%B2%D0%BE-3724476.jpeg», «height»: 1080, «width»: 1080 }, «datePublished»: «2017-03-16T16:31:15+03:00», «dateModified»: «2017-03-16T16:31:15+03:00», «author»: { «@type»: «Person», «name»: «ColdKeeper» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3028466
Source: Joyreactor

[Из песочницы] Настройка SSL VPN на Cisco Router

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


Для реализации схемы, показанной ниже, будем использовать следующее реальное физическое оборудование, также прошу заметить что названия интерфейсов условны и в реализации не применяются (реализовать ssl vpn в unl-eve не удалось, так как ни iol ни vios команды для конфигурирования webvpn не поддерживают):


Cisco 881 (C880DATA-UNIVERSALK9-M 15.2(4)M4)

Windows 7 x64 + AnyConnect 4.4


Схема подключения:


Для начала, что такое SSL VPN (или WEBVPN) от Cisco. Это своего рода наследник easy vpn или ipsec vpn, который позволяет по протоколу ssl (443 порт) удаленно подключиться к вашей корпоративной или домашней сети. Кроме простоты настройки и относительно «легкого» конфига, самым большим доводом за использование ssl является то, что он использует практически повсеместно «открытый» 443 порт для подключения, т.е. если бы вы, например, использовали ipsec, то необходимо было бы на межсетевом экране или же на граничном роутере открывать isakmp (500) порты, наверняка разрешить nat-t (4500), и еще вдобавок разрешить трафик esp, тогда как в случае с ssl подключение проходит по 443 порту, который в большинстве своем разрешен для хостов. Кроме этого не надо на стороне клиента производить каких либо настроек, удаленному пользователю достаточно знать всего лишь внешний ip или dns имя роутера, а также логин и пароль для входа (при использовании easyvpn помимо вышеперечисленного нужен pre-share ключ, а также наименование client configuration group).
Читать дальше →
[Из песочницы] Настройка SSL VPN на Cisco Router
Source: habrahabr

Пост №3028445

Автор: Андрей Лупашевский

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»http://gf.reactor.cc/post/3028445″ }, «headline»: «Pacifica Northwest :: GF Персонажи :: Gravity Falls :: BigDad :: фэндомы», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/Pacifica-Northwest-GF-%D0%9F%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%B6%D0%B8-Gravity-Falls-%D1%84%D1%8D%D0%BD%D0%B4%D0%BE%D0%BC%D1%8B-3724438.jpeg», «height»: 1790, «width»: 1400 }, «datePublished»: «2017-03-16T16:16:00+03:00», «dateModified»: «2017-03-16T16:16:00+03:00», «author»: { «@type»: «Person», «name»: «Андрей Лупашевский» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3028445
Source: Joyreactor

Пост №3028440

Автор: twKrash

Когда долго хотел в туалет и у тебя это, наконец, получилосьИли сквозь боль, к наслаждению. ссылка на гифкуРазвернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»http://me.reactor.cc/post/3028440″ }, «headline»: «Когда долго хотел в туалет и у тебя это, наконец, получилось / Mass Effect Andromeda :: Mass Effect :: gif :: Лицевая анимация :: анимация :: фэндомы», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/Mass-Effect-Andromeda-Mass-Effect-%D1%84%D1%8D%D0%BD%D0%B4%D0%BE%D0%BC%D1%8B-gif-3724429.gif», «height»: 229, «width»: 360 }, «datePublished»: «2017-03-16T16:09:11+03:00», «dateModified»: «2017-03-16T16:09:11+03:00», «author»: { «@type»: «Person», «name»: «twKrash» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «Или сквозь боль, к наслаждению. » }
Комментировать 
Пост №3028440
Source: Joyreactor

Пост №3028437

Автор: cesar


Наполнитель для кота




Развернуть



{
«@context»: «http://schema.org»,
«@type»: «BlogPosting»,
«mainEntityOfPage»:{
«@type»:»WebPage»,
«@id»:»/post/3028437″
},
«headline»: «Наполнитель для кота / коты :: llceSarll :: cesar black white :: Смешные комиксы (веб-комиксы с юмором и их переводы)»,
«image»: {
«@type»: «ImageObject»,
«url»: «http://img0.joyreactor.cc/pics/post/full/llceSarll-cesar-black-white-%D0%BA%D0%BE%D1%82%D1%8B-%D0%9A%D0%BE%D0%BC%D0%B8%D0%BA%D1%81%D1%8B-3724420.png»,
«height»: 800,
«width»: 1600 },
«datePublished»: «2017-03-16T16:08:22+03:00»,
«dateModified»: «2017-03-16T16:08:22+03:00»,
«author»: {
«@type»: «Person»,
«name»: «cesar»
},
«publisher»: {
«@type»: «Organization»,
«name»: «JoyReactor.cc»,
«logo»: {
«@type»: «ImageObject»,
«url»: «http://joyreactor.cc/images/joyreactor_ie6.png»,
«width»: 207,
«height»: 54
}
},
«description»: «»
}

Комментировать 
Пост №3028437
Source: Joyreactor

[Перевод] Тёмный путь

image

Предлагаю вашему вниманию перевод оригинальной статьи Роберта С. Мартина.

За последние несколько месяцев я попробовал два новых языка. Swift и Kotlin. У этих двух языков есть ряд общих особенностей. Действительно, сходство настолько сильное, что мне стало интересно, не является ли это новой тенденцией в нашей языкомешалке. Если это действительно так, то это тёмный путь.

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

Проблема в том, что оба языка сделали ставку на сильную статическую типизацию. Кажется, оба намерены заткнуть каждую дыру в своём родном языке. В случае со Swift – это странный гибрид C и Smalltalk, который называется Objective-C; поэтому, возможно, упор на типизацию понятен. Что касается Kotlin – его предком является уже довольно строго типизированная Java.

Я не хочу, чтобы вы думали, что я против статически типизированных языков. Я не против. Есть определенные преимущества как для динамических, так и для статических языков; и я с удовольствием пользуюсь обоими видами. Я предпочитаю динамическую типизацию, и поэтому я иногда использую Clojure. С другой стороны, я, вероятно, пишу больше Java, чем Clojure. Поэтому вы можете считать меня би-типичным. Я иду по обеим сторонам улицы — если так можно выразиться.

Дело не в том, что меня беспокоит, что Swift и Kotlin статически типизированы. Скорее меня беспокоит глубина статической типизации.

Погрузиться в пучину тьмы
[Перевод] Тёмный путь
Source: habrahabr

Библиотеки для глубокого обучения Theano/Lasagne

Привет, Хабр!

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

Я открою этот цикл статьёй о Theano — библиотеке, которая используется для разработки систем машинного обучения как сама по себе, так и в качестве вычислительного бекэнда для более высокоуровневых библиотек, например, Lasagne, Keras или Blocks.

Theano разрабатывается с 2007 года главным образом группой MILA из Университета Монреаля и названа в честь древнегреческой женщины-философа и математика Феано (предположительно изображена на картинке). Основными принципами являются: интеграция с numpy, прозрачное использование различных вычислительных устройств (главным образом GPU), динамическая генерация оптимизированного С-кода.

Читать дальше →
Библиотеки для глубокого обучения Theano/Lasagne
Source: habrahabr

Новые 4K-телевизоры Sony BRAVIA доступны для предзаказа в России

Компания Sony объявила о скором старте продаж в России новых телевизоров BRAVIA серий XE94, XE93, XE90, XE80. Все представленные модели имеют разрешение 4K, поддерживают расширенный диапазон контрастности […]
Новые 4K-телевизоры Sony BRAVIA доступны для предзаказа в России
Source: 4pda