Pull to refresh
22
0
point212 @point212

User

Send message

Статические члены класса. Не дай им загубить твой код

Reading time11 min
Views82K
Давно хотел написать на эту тему. Первым толчком послужила статья Miško Hevery "Static Methods are Death to Testability". Я написал ответную статью, но так и не опубликовал ее. А вот недавно увидел нечто, что можно назвать «Классо-Ориентированное Программирование». Это освежило мой интерес к теме и вот результат.

«Классо-Ориентированое Программирование» — это когда используются классы, состоящие только из статических методов и свойств, а экземпляр класса никогда не создается. В этой статье я буду говорить о том, что:
  • это не дает никаких преимуществ по сравнению с процедурным программированием
  • не стоит отказываться от объектов
  • наличие статических членов класса != смерть тестам

Хотя эта статья про PHP, концепции применимы и к другим языкам.
Читать дальше →
Total votes 78: ↑65 and ↓13+52
Comments48

Рутокен ЭЦП и Open Source

Reading time3 min
Views30K


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

Мы прилагаем много усилий, чтобы «подружить» Рутокен ЭЦП и различные приложения Open Source. Для этой цели мы добавили поддержку российских криптоалгоритмов (ГОСТ 28147-89, ГОСТ Р 34-11.94 и ГОСТ Р 34-10.2001) и устройств Рутокен и Рутокен ЭЦП в проект OpenSC, а также разработали свою собственную кроссплатформенную библиотеку PKCS#11, работающую на операционных системах Microsoft Windows, GNU/Linux, Mac OS X, FreeBSD и др.

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments15

25 вопросов задаваемых на собеседовании системным администраторам Linux

Reading time6 min
Views159K
Перевод Андрей А. Породько. Оригинал Pradeep Kumar · March 21, 2016 (http://www.linuxtechi.com/25-interview-questions-for-linux-administrator-job/).
Надеюсь кому-нибудь пригодится. Меня спрашивали про ps, top и overcommitment в kvm ;-)
Внимание! Много букв и нет картинок.
От переводчика. Пожалуйста, не пишите в комментариях что что-то можно сделать по-другому — это перевод. Когда вам зададут на интервью в RedHat подобный вопрос, у вас будет возможность проявить себя ;-)
Читать дальше →
Total votes 33: ↑17 and ↓16+1
Comments64

Calltracking в Minecraft или как быстро сделать трехмерный UI

Reading time5 min
Views25K
Пару месяцев назад назад я показал детям Minecraft, а чуть позже — купил им книгу по программированию в MineCraft. Правда, детям купил, чес-слово. Ну сам взял полистить, ну написал пару скриптов…

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

В этот момент отдельные части сложились в цельную картину и я подумал — о! статистика звонков в Minecraft.



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

А если серьезно — то кто сказал что интерфейсы должны быть двумерными?
И кто сказал что трехмерный интерфейс это долго и сложно?
Вся затея у меня заняла 3 часа (57 строк на питоне), учитывая, что первые полчаса я разбирался как на python парсить джейсон.

Под катом — вся история целиком, видео с результатом и бонус для дочитавших до конца — все 3 часа разработки в 3 минутном time-lapse видео.
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments19

Программный интернет шлюз для уже не маленькой компании (Shorewall, плюшки). Часть 4

Reading time2 min
Views4K
Представляю четвертую статью из серии, ориентированных на «продолжающих» системных администраторов, для опытных я вряд ли открою что-то новое.

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

Конкретно в этой части:
  • Автоматические события
  • Макросы

А в первой части были рассмотрены:
  • Простейшая настройка Shorewall
  • Ужасно сложная настройка dnsmasq
  • Не менее сложная настройка OpenVPN
  • И для многих продолжающих админов нетипичная, динамическая маршрутизация, на примере OSPF

А во второй:
  • Более подробная настройка Shorewall
  • Страшный и не понятный QoS
  • Балансировка нагрузки и резервирование

А в третьей:
  • QoS во всю ширь в Shorewall
  • Более подробная настройка Shorewall
  • Раскидывание трафика по каналам в соответствии с протоколами
  • Костыли, без них, никуда

Читать дальше →
Total votes 4: ↑2 and ↓20
Comments0

Парадокс Ферми

Reading time17 min
Views156K
В чудную звёздную ночь каждый ощущает нечто особенное, когда обращает свой взор в небо и видит подобную картину:




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

Вот это самое нечто ощутил и физик Энрико Ферми, задавшийся резонным вопросом: "А где все?".
А ведь и правда, где все?
Total votes 77: ↑71 and ↓6+65
Comments384

Экономим электричество на тонких клиентах

Reading time2 min
Views16K
В целях экономии электроэнергии на работе вышла директива: на выходные и праздники, а так же на ночь, все компьютеры, кроме критичных, должны быть выключены. Но как водится — кто то да забьёт забудет. Для тонких клиентов есть два решения — поднять TSmon и с него рулить или подключится к клиенту по ssh и дать команду на выключение.

По большому счёту сам процесс несложный — добавляем в сборку пакет sshd, задаём пароль для root в файле build.conf параметром param rootpasswd, собираем образ, загружаем, когда надо логинимся по ssh на клиенте и выключаем, но интереснее разослать всем нужным клиентам сигнал на выключение одной командой, без лишних телодвижений.

Почему не telnet — потому что по ssh проще сделать автологин, без костылей типа perl и expect. Далее описан способ реализации.
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments25

Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив

Reading time10 min
Views96K
image

До недавнего времени в Одноклассниках в качестве основного Linux-дистрибутива использовался частично обновлённый OpenSuSE 10.2. Однако, поддерживать его становилось всё труднее, поэтому с прошлого года мы перешли к активной миграции на CentOS 7. На подготовительном этапе перехода для CentOS были отработаны все внутренние процедуры, подготовлены конфиги и политики настройки (мы используем CFEngine). Поэтому сейчас во многих случаях миграция с одного дистрибутива на другой заключается в установке ОС через kickstart и развёртывании приложения с помощью системы деплоя нашей разработки — всё остальное осуществляется без участия человека. Так происходит во многих случаях, хотя и не во всех.

Но с самыми большими проблемами мы столкнулись при миграции серверов раздачи видео. На их решение у нас ушло полгода.
Читать дальше →
Total votes 110: ↑104 and ↓6+98
Comments73

Умный дом или игрушка для мужчин (продолжение №2): комфорт

Reading time7 min
Views27K
Предыдущие статьи (1 и 2) вселили в меня уверенность, что тема интересует не только меня. Вот я и решил продолжить эту тему. Следующее по порядку: комфорт. «Порядок» беру из википедии, т.к. согласен с ее определением.

Для России на первом месте —
комфорт и имидж.
Для Европы —
прежде всего энергосбережение и только потом комфорт.

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

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

Сейчас лето. Зима не за горами. У нас в Санкт-Петербурге достаточно тепло, можно не догревать дом. Но готовиться к зиме уже пора. Мы строили дачу специально для того, чтобы зимой по выходным приезжать туда, а также на Новый год и на другие праздники.

Картинка ниже расскажет о возможности точно фиксировать температуру в доме.



График состоит из 2-х частей: сверху затраты на электричество в Ваттах, снизу — 2 кривых: зеленая — температура на улице, синяя — в помещении. График выбран за 5 дней. Октябрь 2014, Ленинградская область. Температура на улице от -7 до +10 по Цельсию. Температура в помещении — фиксированная — 9 градусов. Точность при низких температурах на улице составляет 0,03 градуса. В данном случае на улице +10, поэтому в помещении — 9,05 градусов. Затраты на электричество оптимальны. Ничего лишнего, но вполне достаточно. 9 градусов установлено, т.к. помещение с водой.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments29

WDS (Windows Deployment Services). Быстрое развертывание клиентских машин с сервера. Создание образа развертывания WIM

Reading time8 min
Views240K

Начало и конец




Добрый день всем читающим!
Много статей было об этом, много блогов, но статья HowTo, без напильника, найдена не была, и это крайне печально.
Для небольших развертываний эта вещь, из коробки просто незаменима.

Для тех кто не знает: WDS (центр развертывания) это специальное средство, которое есть в серверной ОС Microsoft, с помощью него можно установить систему на большое количество компьютер одновременно, с помощью сети, используя PXE.
Также тут будет информация о препарировании wim, и немножко о DHCP.
Итак начнем под катом.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments21

JiT-JiS SCM или «Как делают Автомобили»

Reading time12 min
Views17K
Говорят, что автомобиль состоит из нескольких (десятков?) тысяч деталей. Задумывались ли вы, как именно происходит синхронизация цепочки поставок в автомобильной промышленности? Кому интересно узнать про разницу между Just-in-Time и Just-in-Sequence, кто и как заносил Toyota Lean Manufacturing Principles в Европу – прошу под кат.



Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments14

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Reading time5 min
Views115K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →
Total votes 111: ↑96 and ↓15+81
Comments102

Еще одна камера для FreeTrack

Reading time1 min
Views16K
Я знаю что данное изобретение уже прилично измусолено на просторах Интернета. И написав эту статью, точнее коротенький пост я не открываю америку. Скорее это мануал по разборке камеры.

Просто дело в том, что я собрался смастерить с ребенком подобный девайс и обнаружил что рекомендованные камеры сейчас просто не найти и все ссылки уже как правило устарели. Оббегав все магазины я не нашел ни чего подходящего, но почему то мой взгляд упал на камеру Ritmix RVC-007M
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments8

Датчики и микроконтроллеры. Часть 1. Матчасть

Reading time19 min
Views211K
В эпоху готовых отладочных плат и тысяч готовых модулей к ним, где достаточно взять пару блоков, соединить их вместе, и получить нужный результат, далеко не каждый понимает основы схемотехники, почему и как это работает, а главное — что надо делать, если это работает не так.
Как раз открылся хаб Схемотехника, так что, как говорил Бьюфорд Бешеный Пёс Таннен
Здание суда уже строят, значит, пора кого-то вешать.

В этом цикле я расскажу о датчиках — как о немаловажном элементе системы управления неким объектом или тех. процессом.

Все свое повествование я буду вести касаемо практических вопросов реализации цифровых систем управления на базе микроконтроллеров.

Руководство не претендует на всеобщий обхват вопроса.
Хотя после того, как мой конспект перелез за 20 страниц текста, я решил разбить статью на следующие части:
  • Часть 1. Мат. часть. В ней мы рассмотрим датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассмотрим передаточные функции и динамические характеристики датчика, разберемся с его возможными подключениями.
  • Часть 2. Датчики климат-контроля. В ней я рассмотрю особенности работы с датчиками температуры, влажности, давления и газового состава
  • Часть 3. Датчики электрических величин. В ней я коснусь измерения тока и напряжения

Читать дальше →
Total votes 50: ↑47 and ↓3+44
Comments16

О переводе времени 2014

Reading time3 min
Views104K
Как известно, 26 октября 2014 года в 2 часа ночи мы опять переводим время. Для Windows XP по понятным причинам патча не будет, для подерживаемых ОС патч ожидается за 2 недели до даты Х. Пользователям XP и желающим проверить всё заранее посвящен этот пост.

Собранные руками при помощи Tzedit (не от Microsoft, он не понимает Dynamic DST, а вот этим) таймзоны на всю Россию для Win7 и XP лежат тут.

Читать дальше →
Total votes 57: ↑49 and ↓8+41
Comments38

Ускорение загрузки Windows for fun and profit

Reading time4 min
Views807K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Total votes 533: ↑517 and ↓16+501
Comments365

Обзор чехла-подставки с Micro USB клавиатурой для 7" планшета

Reading time4 min
Views34K
Здравствуйте, уважаемые хабражители!

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

Как оказалось, подобных чехлов существует великое множество и различаются они, по сути, своими размерами и типом USB-разъёма. В рамках сего обзора мы с вами рассмотрим чехол для семидюймовых девайсов, с micro USB
коннектором.

Сам гаджет с уже подключенным планшетом выглядит вот так:
image

Под катом характеристики и прочие подробности...
Total votes 20: ↑7 and ↓13-6
Comments9

Беспроводная зарядка доступна для заказа в Google Play

Reading time1 min
Views83K
В то время как сейчас бурно заказывается LG Nexus 4 с Google Play, незаметно появилось устройство Wireless Charging — беспроводное зарядное устройство, работающее по стандарту Qi.

Индукционная станция Qi создана специально для зарядки смартфонов Nexus 4. Изящный дизайн, удобный угол наклона – и без лишних проводов.


Читать дальше →
Total votes 37: ↑29 and ↓8+21
Comments51

Измеряем потребляемую мощность домашних приборов

Reading time3 min
Views375K
Здравствуйте коллеги, хочу рассказать вам о своем маленьком опыте по реальному измерению мощности домашних электроприборов и своего компьютера.

Преамбула
После выставления мне больших счетов за электроэнергию я решил провести ревизию своих электроприборов и проверить какой прибор сколько потребляет реально и сколько все это мне будет стоить. В итоге решил приобрести локальное (то есть вставляемое в розетку, а не в электрический щиток) устройство подсчета кВт.ч.
Читать дальше →
Total votes 48: ↑43 and ↓5+38
Comments107

Зачем исследовать космос? Письмо 1970 года монахине в Африку

Reading time10 min
Views58K
Эрнс Шталингер написал это письмо 6 мая 1970 года сестре Мэри Джаканд, монахине, которая работала среди голодающих детей города Кабве в африканской стране Замбии, в ответ на вопрос о значении освоения космоса. В то время доктор Шталингер был заместителем директора по науке в Центре Космических Полетов Маршалла, в Хэнтсвилле, штата Алабама. Тронутый искренностью и обеспокоенностью Мэри, он направил ей все свои искренние убеждения о ценности исследований космоса. Красноречивое заявление доктора актуально до сих пор, даже спустя четыре десятилетия. Родившись в Германии в 1913 году, доктор Шталингер получил Ph.D. по физике в университете Tuebingen 1936 году. Он был членом немецкой ракетной группы, в Peenemunde и приехал в Соединенные Штаты в 1946 работать на американскую армию в Форт Блисс, штат Техас. Он переехал в Хэнтсвилль в 1950 и продолжил работать для армейского Redstone Arsenal до тех пор пока не был создан центр космических полетов в 1960. Доктор Шталингер был неоднократно награжден и широко известен за свои исследования силовых установок. Он получил награду от министра обороны (Exceptional Civilian Service Award) за участие в запуске Эксплорера-1, первого американского космического спутника.

Читать дальше →
Total votes 236: ↑228 and ↓8+220
Comments308
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity