Это пост для тех, кто начинает работу с Git. Все, что здесь написано по частям можно найти в многочисленных простынях о Git на Хабре. Но я подумал, что неплохо было бы иметь отдельный предельно понятный топик, который бы гуглился по запросу «git изменение коммитов».
Сергей Фесюра @peinguin
User
Внедрение корпоративного Linux в ПриватБанке
6 min
110KИстория
Внедрение Linux в ПриватБанке началось в 2007 году. За это время был пройден большой путь и хотелось бы поделиться с сообществом своим опытом внедрения. На данный момент мы достигли следующих показателей: более 36500 рабочих мест с ОС Linux в 4000 отделений, расположенных в 5 странах.
В 2007 году за основу был взят ASPLinux 11.2. Со временем для альтернативы были выбраны другие дистрибутивы — Fedora, openSUSE, Ubuntu. Позже стала очевидной необходимость создания собственного дистрибутива и системы управления рабочими станциями. Разработка началась в январе 2012 года. Для основы был выбран Ubuntu 12.04 LTS с рабочим окружением Gnome Classic (no effect). Основные аргументы: Ubuntu — самый распространённый десктопный дистрибутив последних лет; обширное комьюнити, где проще найти решение возникающих проблем; именно его в качестве основы внедрения выбрал Google, много примеров внедрения в государственных и муниципальных учреждениях Германии, Франции. Выбор системы управления остановился на Puppet.
В июне 2012 года стартовал переход и к январю 2013 на корпоративную ОС были переведены уже около 95% ПК. Такая скорость перехода обусловлена тем, что сотрудники уже имели опыт работы в Linux.
Основные задачи, которые удалось решить благодаря текущему внедрению:
- cущественная экономия ресурсов при поддержке ОС на рабочих местах сотрудников;
- поддержание программного обеспечения в актуальном состоянии;
- возможность оперативного применения критических обновлений (до 1 часа на всех ПК);
- cбор и анализ статистической информации о парке ПК и периферии;
- создание системы проактивной реакции на сбои (Event Manager).
Дальше более детальное описание компонентов нашей реализации.
+226
Опыт создания кроссплатформенной игры (iOS/Android)
6 min
84K  Данный пост будет полезен разработчикам, которые только встали на радужный путь геймдева. В нашем недавнем посте уже было рассказано о первоначальных шагах нашей dream team в сфере игройстроя. Как и обещали, работаем в этом направлении дальше и решили попробовать себя в другом жанре игр. Далее будут кратко освещены некоторые моменты создания и публикации игры на двух платформах iOS и android.
+55
Zoom TV: как изменить способ управления телевизором навсегда
3 min
12KВ прошлом посте я коварно вводил в заблуждение честных граждан и нёс антинаучную чушь обозначил важную, на мой взгляд, проблему: традиционный метод управления телевизором отдаёт нафталином и совершенно не соответствует текущему социально-технологическому моменту. Заставлять пользователя вручную искать нужную ему передачу посредством телевизионного пульта в наше время – это всё равно, что предпочитать ручной человеческий труд роботам.
Опять же, я свято верю в то, что современный городской человек имеет полное право обставить пространство вокруг себя в полном соответствии с заповедями консьюмеристского фэн-шуя: т.е. получать услуги по максимуму, а усилий прикладывать по минимуму (в идеале – не прикладывать никаких усилий вообще). Устранение механических и монотонных действий из нашей жизни – вот одна из целей технического прогресса. И длительное сопротивление ТВ (более 50-ти лет) тут является чем-то из ряда вон выходящим.
Известный знаток и умелец в сфере медиа-интерфейсов Йозеф Геббельс как-то сказал «Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно; в противном случае критика превращается в наглую самодовлеющую силу и становится тормозом на пути культурного прогресса». Что ж, я решил последовать этому совету и представить метод решения всем известной проблемы.
Наша команда разработала ZOOM TV – приложение для современных телевизоров, анализирующее интересующие зрителя категории передач. Собрав необходимые данные о предпочтениях пользователя, оно автоматически переключается между наиболее рейтинговыми передачами из тех категорий, что ему интересны. Таким образом, приложение ограждает человека от неинтересных ему передач и минимизирует количество действий, необходимых для управления.
Возникает вопрос – но как это работает? Сейчас объясню.
Опять же, я свято верю в то, что современный городской человек имеет полное право обставить пространство вокруг себя в полном соответствии с заповедями консьюмеристского фэн-шуя: т.е. получать услуги по максимуму, а усилий прикладывать по минимуму (в идеале – не прикладывать никаких усилий вообще). Устранение механических и монотонных действий из нашей жизни – вот одна из целей технического прогресса. И длительное сопротивление ТВ (более 50-ти лет) тут является чем-то из ряда вон выходящим.
Известный знаток и умелец в сфере медиа-интерфейсов Йозеф Геббельс как-то сказал «Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно; в противном случае критика превращается в наглую самодовлеющую силу и становится тормозом на пути культурного прогресса». Что ж, я решил последовать этому совету и представить метод решения всем известной проблемы.
Наша команда разработала ZOOM TV – приложение для современных телевизоров, анализирующее интересующие зрителя категории передач. Собрав необходимые данные о предпочтениях пользователя, оно автоматически переключается между наиболее рейтинговыми передачами из тех категорий, что ему интересны. Таким образом, приложение ограждает человека от неинтересных ему передач и минимизирует количество действий, необходимых для управления.
Возникает вопрос – но как это работает? Сейчас объясню.
-1
Опросы про языки программирования (+ обновление)
1 min
73KДавно на Хабре не было опросов про популярность языков программирования. Идея опроса возникла из спора о популярности языка D в топике о новых возможностях C++. Существующие рейтинги: RedMonk, TIOBE, LangPop.com слишком косвенно меряют непонятно что.
Цель этих опросов: определить соотношение кол-ва людей, которые пишут на том или ином языке сейчас.
+93
Написание бота для флэшевой игры
11 min
74KЗачем?
О лазерной коррекции зрения я подумывал давно, и вот, наконец, решился на процедуру. После недолгого изучения рынка (живу в Питере) выяснилось, что цены по городу везде примерно одинаковые, и заниматься медицинским туризмом смысла тоже нет (в Мск ненамного дешевле). Впрочем, оказалось, что на операции можно заметно сэкономить, т.к. одна из клиник предоставляет разветвлённую систему скидок на свои услуги.
Скидки ветеранам и пенсионерам меня, ясное дело, не интересовали. А вот необычной акцией «поиграй во флеш-игру на нашем сайте и конвертируй набранные очки в скидку» я решил воспользоваться. Подкатом описание процесса.
Вообще идея сперва изумила своей абсурдностью – вроде как считается, что компьютерные игры вредят зрению, и тогда акция похожа на «вычерпай из подвала 10000 вёдер ледяной воды и получи скидку на лечение ревматизма». Сама игра, надо сказать, тоже поразила своей упоротостью – очевидно, что авторы хотели сделать игру без насилия, поэтому легенда гласит: «с помощью технологии LASIK помогите вернуть кротам зрение». Причём, судя по анимации, лечение близорукости производится путём мгновенного испарения пациента.
Ну да ладно, это лирика. На самом деле я сразу попробовал выбить скидку, однако, весь мой геймерский опыт не помог мне с первого раза получить даже 17%. Сыграв несколько раз, я всё же набрал требуемые 17000 очков, но было ясно, что даже 20000 являются недостижимой планкой, не говоря уже о заветных 25000. Проклятые кроты лезут со всех щелей, но быстро прячутся обратно. При этом за «исцеление» крота даётся 100-200 очков, так что пропускать их нельзя. Не знаю, под силу ли это человеку.
Решение пришло в голову сразу же – нужно писать бота, который пройдёт игру за меня! Процесс написания бота на C# подкатом.
+112
/dev/null as a Service
1 min
55KВ современном мире, все является сервисом. Вы можете создавать документы, заливать фотографии, разворачивать компьютеры, но что происходит с мусором? Он копится и занимает все вокруг. Именно поэтому мы запускаем /dev/null в облаке.
IAAS, SAAS, PAAS?
Мы называем свое детище DAAS.
Вам больше не придется избавляться от лишних данных самому. Используйте наш распределенный сервис, расположенный в более, чем 380 локациях! Не имеет значения, будете ли вы использовать его в личных целях, либо для бизнеса. Доступны тарифы даже для целых корпораций.
IAAS, SAAS, PAAS?
Мы называем свое детище DAAS.
Вам больше не придется избавляться от лишних данных самому. Используйте наш распределенный сервис, расположенный в более, чем 380 локациях! Не имеет значения, будете ли вы использовать его в личных целях, либо для бизнеса. Доступны тарифы даже для целых корпораций.
+185
Красота математики
1 min
38KМатематика, при правильном не нее взгляде, обладает не только истиной, но и высшей красотой — красотой холодной и суровой, подобно скульптуре, не обращенной ни к какой стороне нашей слабой натуры, лишенной украшений живописи и музыки, и тем не менее утонченно чистой и способной к строгому совершенству, свойственному лишь величайшему искуству. Истинный дух восторга, блаженства, чувства что ты больше, чем Человек, каковое есть критерий высшего совершенства, присутствует в математике так же несомненно, как и в поэзии.
Бертран Рассел.
Авторы проекта parachutes.tv графические дизайнеры Yann Pineill и Nicolas Lefaucheux опубликовали великолепное видео, показывающее непосредственную связь между самыми повседневными событиями в жизни людей и математикой. Идея видео подчёркивает, что практически любое окружающее нас явление может быть представлено в виде компактном виде математических формул и в виде графиков.
Для личного вдохновения или популяризации математики проект может служить самым непосредственным образом.
Бертран Рассел.
Авторы проекта parachutes.tv графические дизайнеры Yann Pineill и Nicolas Lefaucheux опубликовали великолепное видео, показывающее непосредственную связь между самыми повседневными событиями в жизни людей и математикой. Идея видео подчёркивает, что практически любое окружающее нас явление может быть представлено в виде компактном виде математических формул и в виде графиков.
Для личного вдохновения или популяризации математики проект может служить самым непосредственным образом.
+46
Слово в защиту пиксельных значений media queries
8 min
36KЧитая публикации о верстке для вэба, вы не раз натыкались на рекомендацию не использовать пикселы в media queries. Например, вот цитата из совсем недавней статьи на Хабре:
Вместо использования фиксированных размеров, лучше использовать относительные единицы для определения breakpoints. На хабре уже многократно была раскрыта тема использования относительных размеров в верстке. Вот неполный список статей: здесь, здесь, здесь. Приведу лишь самый главный довод — это позволит браузерам изменять дизайн в зависимости от уровня установленного размера зума пользователем, в результате чего пользователь увидит более приятный, более доступный для просмотра сайт.
Что, если я скажу вам, что использование пикселов в media queries не только не причиняет никакого вреда верстке, но и имеет преимущества над использованием em'ов?
Вместо использования фиксированных размеров, лучше использовать относительные единицы для определения breakpoints. На хабре уже многократно была раскрыта тема использования относительных размеров в верстке. Вот неполный список статей: здесь, здесь, здесь. Приведу лишь самый главный довод — это позволит браузерам изменять дизайн в зависимости от уровня установленного размера зума пользователем, в результате чего пользователь увидит более приятный, более доступный для просмотра сайт.
Что, если я скажу вам, что использование пикселов в media queries не только не причиняет никакого вреда верстке, но и имеет преимущества над использованием em'ов?
+110
Десятка лучших консольных команд
2 min
198KВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
+310
API консоли Javascript
15 min
36KРассмотрим ранее опубликованные решения, затем сделаем обзор методов консоли с помощью перевода недавней статьи Axel Rauschmayer-а, разработчика и консультанта с более чем 15-летним стажем, затем я опубликую некоторые свои решения, которые оказались удачными в процессе эволюции и отладки на ряде проектов.
UPD 2015: обновление таблицы команд до актуального состояния, Github (ru, en; разворачивание на javascript).
+49
Производительность фронтэнда. Часть 1 — конкатенация, компрессия, кэширование (4-я из 12 статей о Node.js от Mozilla)
9 min
14KTutorial
Translation
От переводчика: Это четвёртая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Эта статья о том, как увеличить скорость загрузки ресурсов сайта и модуле connect-cachify, созданном в Mozilla для этой цели.
В этой статье мы поговорим о производительности фронтэнда и представим инструменты, созданные в Mozilla для того, чтобы сделать сайт Persona настолько быстрым, насколько возможно. Мы опишем работу с connect-cachify — модулем, автоматизирующим некоторые из важнейших аспектов, обеспечивающих производительность фронтэнда.
Но сначала окинем взглядом наиболее распространённые пути улучшения производительности. Если у вас уже есть опыт оптимизации фронтэнда, можете пропустить эти разделы и перейти в конец статьи, где описано, как с помощью connect-cachify автоматически делать то, что вам раньше доводилось делать вручную.
Все статьи цикла:
- "Охотимся за утечками памяти в Node.js"
- "Нагружаем Node под завязку"
- "Храним сессии на клиенте, чтобы упростить масштабирование приложения"
- "Производительность фронтэнда. Часть 1 — конкатенация, компрессия, кэширование"
- "Пишем сервер, который не падает под нагрузкой"
- "Производительность фронтэнда. Часть 2 — кешируем динамический контент с помощью etagify"
- "Приручаем конфигурации веб-приложений с помощью node-convict"
- "Производительность фронтенда. Часть 3 — оптимизация шрифтов"
- "Локализация приложений Node.js. Часть 1"
- "Локализация приложений Node.js. Часть 2: инструментарий и процесс"
- "Локализация приложений Node.js. Часть 3: локализация в действии"
- "Awsbox — PaaS-инфраструктура для развёртывания приложений Node.js в облаке Amazon"
В этой статье мы поговорим о производительности фронтэнда и представим инструменты, созданные в Mozilla для того, чтобы сделать сайт Persona настолько быстрым, насколько возможно. Мы опишем работу с connect-cachify — модулем, автоматизирующим некоторые из важнейших аспектов, обеспечивающих производительность фронтэнда.
Но сначала окинем взглядом наиболее распространённые пути улучшения производительности. Если у вас уже есть опыт оптимизации фронтэнда, можете пропустить эти разделы и перейти в конец статьи, где описано, как с помощью connect-cachify автоматически делать то, что вам раньше доводилось делать вручную.
+13
Свободный ноутбук Novena
2 min
169Khi-res
Известный хакер, автор книги “Hacking Xbox” Эндрю Хуанг (Andrew “bunnie” Huang) в июне 2012 года вместе с коллегами начал разработку свободного ноутбука Novena на процессоре Freescale iMX6. Идея в том, чтобы у сообщества была открытая платформа, с открытой документацией и руководством по программированию, так что каждый может собрать из комплектующих себе ноутбук/маршрутизатор/etc. на свой вкус, с любой клавиатурой, корпусом и размером экрана.
+108
Проброс видеокарты в KVM из под ubuntu
4 min
76KTutorial
Предистория
Года два назад я решил перейти полностью на линукс, но необходимость в венде не упала, поэтому всегда держал у себя 2 операционные системы. Около месяца назад попробовал поставить VirtualBox и на нее установить Windows, в общем то работать с 2мя операционными системами мне понравилось, но была одна проблема, я программирую исключительно компьютерную графику и мне нужна была поддержка OpenGL 3.3 и выше, к сожалению VirtualBox не предоставлял мне такой возможности. Погуглив наткнулся на такую штуку как Xen, долго пытался что-то сделать на ней, в итоге ничего не вышло, скорее всего из-за основной видеокарты — nVidia GeForce 580 GTX, гипервизор попросту не хотел запускать даже убунту, не говоря уже об виндовсе. Начал искать другие гипервизоры, и наткнулся на KVM, с ним пришлось повозиться, но в конце концов все заработало.
Конфигурация
Итак, нам понадобится:
- Процессор с поддержкой виртуализации (в Intel — это VT-d, в AMD — AMD-Vi). Важно: чипсет тоже дожен поддерживать эту технологию
- Материнская плата с блоком управления памятью ввода/вывода(IOMMU)
- Две видеокарты, для гостевой ОС желательно использовать AMD видеокарту, т.к. с ней проблем не должно быть. Видеокарты NVidia не работают.
Моя конфигурация:
- Процессор AMD Phenom II x4
- Материнская плата ASUS M5A99X EVO R2.0
- Видеокарта для Ubuntu: NVidia GeForce 580 GTX
- Видеокарта для гостевой ОС: AMD Radeon HD 5800
+33
Разработка web API
9 min
287KTranslation
Интро
Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.
В тексте попадаются комментарии переводчика, они выделены курсивом.
Собираем API-интерфейсы, которые понравятся другим разработчикам
Понятные URL для вызовов API
Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.
Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
/dogs для работы со списком собак
/dogs/12345 для работы с отдельной собакой
+213
Нужны ли в JavaScript классы?
6 min
104KJavaScript принято считать прототип-ориентированным языком программирования. Но, как ни странно, этим подходом практически никто не пользуется: большинство популярных JS-фреймворков явно или неявно оперируют классами.
В этой статье я хочу рассказать об альтернативном способе программирования на JavaScript, без использования классов и конструкторов — чистым прототипным ООП и особенностях его реализации на ECMA Script 5.
В этой статье я хочу рассказать об альтернативном способе программирования на JavaScript, без использования классов и конструкторов — чистым прототипным ООП и особенностях его реализации на ECMA Script 5.
+116
Путь JavaScript модуля
28 min
121KНа момент написания этой статьи в JavaScript еще не существовало официальной модульной системы и все эмулировали модули как могли.
Модули или подобные структуры это неотъемлемая часть любого взрослого языка программирования. Просто иначе никак. Модули позволяют ограничить область видимости, позволяют реиспользовать части приложения, делают приложение более структурированным, отделяют ресурсы от шума и вообще делают код нагляднее.
Вот в JavaScript своя атмосфера — в языке нет официальных модулей, более того все файлы лежат удаленно, один поток приложения. Приходится постоянно решать какие-то странные проблемы с загрузкой, хитро паковать модули в один файлы, чтобы ускорить время загрузки. Бывает, что нужно воевать с двойными стандартами, адаптировать модули другого формата.
Дело в том, что раньше не думали, что на JavaScript можно делать огромные проекты, а не просто «пропатчить DOM», поэтому о модулях не думали. Да и вообще не думали о будущем. И тут Внезапно будущее нагрянуло! Все вроде-бы уже есть, а модули в JavaScript, мягко говоря, запаздывают. Поэтому разработчикам приходится крутиться и выдумывать какие-то эмуляторы модульности.
Думаю многие из вас читали прекрасную статью Addy Osmani Writing Modular JavaScript With AMD, CommonJS & ES Harmony, которая стала одной из глав его книги Learning JavaScript Design Patterns в этой статье рассказывается про «современные» JavaScript модули или же читали достаточно старую статью JavaScript Module Pattern: In-Depth 2010 года про «старые» модули.
Я не буду переводить эти статьи и не буду делать из них солянку. В своей статья я хочу рассказать о моем модульном пути. О том как я проделал путь от «старых» модулей к «новым» и что использую сейчас и почему.
+182
ASP.NET MVC. Урок 0. Вступление
2 min
782KTutorial
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.
ASP.NET MVC я люблю потому что:
Почему именно asp.net mvc
ASP.NET MVC я люблю потому что:
- Это .net. Я знаю .net и С#.
- Это компилируемый код.
- Это не ASP.NET WebForms, я работаю с html-кодом.
- Используется MVC-паттерн.
- Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
- Отличные инструменты отладки.
+140
RBAC Авторизация в YII и LDAP
12 min
97KTutorial
RBAC — это простой и мощный способ централизованного управления доступом в веб приложении. Основным его достоинством является то, что при правильном понимании и применении иерархии авторизации можно очень гибко управлять доступом не изменяя код контроллеров.
К сожалению стандартный мануал по RBAC в YII оставляет больше вопросов чем ответов. Эту ситуацию я и намереваюсь исправить.
Я расскажу о создании “правильной” иерархии: как делать не стоит. А в завершении я приберёг инструкцию, о том как подружить LDAP авторизацию (из ActiveDirectory ) с Yii и RBAC.
Все кто заинтересовался, добро пожаловать под кат!
+44
Information
- Rating
- Does not participate
- Location
- Полтава, Полтавская обл., Украина
- Date of birth
- Registered
- Activity