Архив за 22 августа 2012 - 5

На хабре уже было много статей о распределенных системах управления версиями (DVCS), их сравнений, а также сравнений GUI-клиентов для них. Также были обсуждения плагинов к IDE для работы с git и mercurial. Но практически не было информации об инструментах визуального сравнения и разрешения конфликтов слияния.

Pistol

Недавно я «перескочил» с mercurial (который до сих пор считаю более удобным и логичным) на git, потому что, подавляющее большинство проектов, которые мне интересны, используют git и хостятся на github. В связи с этим, встал вопрос о пересмотре арсенала инструментов, в частности вопрос выбора инструмента визуального сравнения и слияния (diff and merge). По горячим следам, я решил написать этот мини-обзор.

Под катом Вы также найдете примеры настроек Git для использования с DiffMerge и WinMerge под Windows. Думаю многим сэкономит время.
Читать полностью »

Добрый день всем хаброжителям!

Поводом к написанию статьи послужило, то что к моему большому удивлению на хабре я не нашёл статьи о реализации RESTful Web Service на Java, может, конечно, плохо искал. Да написано про RESTful web services очень много, но как то вот так, чтобы простенько с примерами кода, рабочий сервис, не так уж и легко найти и не только на хабре…

Вообще с REST я познакомился совсем недавно, не больше месяца назад. Так что буду очень благодарен за советы, поправки и критику!

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

По моему первому впечатлению: действительно вещь очень удобная, а главное очень простая, ещё и если использовать JSON, а не XML, ну по крайней мере мне так показалось после опыта работы с SOAP и WSDL. Ну, да об этом я думаю и так все знают, кто хоть немного работал с веб сервисами.

Так что, кто заинтересовался реализацией, прошу под кат
Читать полностью »

Моё знакомство с компьютерами, как в силу возраста, так и в силу непростой обстановки 90-х годов началось с OS DOS на p1 90-120mHz, с целыми 4 мегабайтами оперативной памяти. Чуть позже я увидел сказочный мир GUI в лице Windows. Ну а ещё чуть позже на компьютере появился пароль, так как родители в своё время считали, что компьютер на меня дурно влияет, хотя я на нем и не играл, а, в основном, рисовал и учился набирать тексты быстрее, чем 10-12 символов в минуту. В общем, полагаю, здесь все помнят, логин-скрин в ОС Windows 95:
Улыбнитесь, чтобы войти в систему!

Самым веселым, пожалуй, был тот факт, что можно было нажать «отмена» и система работала как ни в чём не бывало. Правда, это дело быстро поправили – появился пароль на этапе BIOS, который так просто не обойдёшь, а про батарейку для сброса в то время я ещё не знал – литературы по компьютеру дома практически не было, а интернета и подавно.
Читать полностью »

Приходилось ли вам когда-нибудь радоваться поражениям других людей?

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

Читать полностью »

В прошлой статье я вкратце рассказал о том, чем же занимается ЦЕРН. Теперь же я хочу немного рассказать об эксперименте ATLAS.

Эксперимент ATLAS — упрощенное описание задачи и немного о детекторе

По традиции, замечание для физиков: я попытаюсь объяснить все так, чтобы было понятно человеку, далекому от физики. Я как можно меньше буду говорить терминами теоретической физики и упрощу Стандартную модель до безобразия, да простит меня Хокинг за это.

И чтобы заинтересовать читателя, я задам один вопрос: почему у вас есть масса?
Читать полностью »

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

Как все должно было быть? Я запускаю свое приложение — будильник, выставляю в сколько часов он должен меня будить и какую программу при этом запускать (телик, музыку ...) и перевожу ПК в спящий режим, по истечении времени программа должна была подать ОС какой то сигнал типу «Вставай пора будить хозяина!» и запустить нужное мне приложения.

Для этого я перелопатил пол интернета, прочитал множество статей про спящий режим компьютера, что делает в этот момент ОС Windows и т.д. задавал вопросы на разных форумах и все что они могли мне сказать это «Будильник есть в телефоне, зачем тебе этот геморрой» или что та в этом роде, правда на майкрософте написали что можно сделать но это будет довольно таки сложно, короче посоветовали мне использовать технологию WOL там как то все это делается через сеть, при этом один комп должен быть постоянно включен чтоб подать сигнал другом компе и тот должен проснутся! Но мне показалось что это как то не удобно получится. Но ничего я не отчаялся и пошел в сторону WinAPI, и вот момент истинны… «Ура, Нашел!».
Читать полностью »

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

Итак, представьте себе следующую ситуацию. Так уж случилось, что вам надо отрефакторить очень большой кусок кода, целую подсистему. Строк, эдак, на 200К. Причем рефакторинг явно выглядит очень крупным, затрагивающим базовые концепции, по которым построена ваша подсистема. Фактически надо переписать всю архитектуру, сохранив бизнес логику. Такое бывает, если, например, вы сделали один проект и у вас впереди новый, и вы хотите в нём исправить все ошибки прошлого. Допустим, по первым прикидкам, на рефакторинг надо месяца 2, не меньше. В процессе рефакторинга всё должно работать, в том числе нельзя мешать другим программистам добавлять новые фичи и чинить баги в подсистеме. Часто такой рефакторинг бывает насколько сложен, что совершенно невозможно замерджить старый код в новый, а также невозможно выкатить результат по частям. Фактически вам надо заменить двигатель самолёта на лету.

Примеры из практики, как моей, так и моих коллег:

  • Переделать всю работу с базой данных с чистого JDBC на Hibernate.
  • Переделать архитектуру сервиса с отсылки-приёмки сообщений на удалённый вызов процедур (RPC).
  • Полностью переписать подсистему трансляции XML файлов в рантайм объекты.

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

В этом посте я не ставлю цели рассказать о том, что такое LMS (Learning Management System) и как ее правильно выбрать, суть вопроса отображена в теме. Предполагается, что читатель уже имеет представление об этом классе систем.

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

Cведения об организационной структуре

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

Вот перечень обязательных вопросов, связанных с оргструктурой вашей (предположим, что вы внедряете систему внутри фирмы, в которой вы работаете) компании, на которые необходимо дать ответы (самостоятельно или с привлечением коллег):

  1. Каковы количество и география представительств/филиалов компании?
  2. Какое количество сотрудников в головной организации?
  3. Какое количество сотрудников в филиальных образованиях?
  4. Предполагается ли структура ответственная за обучение, в том числе дистанционное обучение?
  5. Кто ответственный за обучение и дистанционное обучение в компании?

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

Специфическая информация (обучение, оценка, развитие персонала)

Читать полностью »

Моя компания уже почти семь лет обладает расчетным счетом в ВТБ24. Когда-то клиент-банк ВТБ24 был одним из лучших в мире, но, сказать по правде, в нем немного поменялось за это время. Мне нравится ВТБ24 и мне хотелось бы, чтобы он был более удобным и дружелюбным для онлайн-пользователя. Два года назад я, как частное лицо, начал работать с Банк24.ру, и потом открыл в нем расчетный счет для второго юрлица. Удивительно, но несколько моих знакомых, совершенно независимо, сделали такой же выбор. В этой статье я хотел бы показать отличия между клиент-банком двух разных эпох (начало 2000 и современных) и то, насколько сильно мелкие улучшения в юзабилити могут улучшить впечатление от работы с веб-сервисом.
Итак, начнем! По ходу дела я буду оценивать клиент-банки, исходя из своего личного мнения.
Читать полностью »

RedBeanPHP
В данном посте речь пойдет об весьма интересном ORM фреймворке RedBeanPHP. Примечателен он прежде всего возможностью создавать структуру базы данных на лету. К тому же фреймворк прост в использовании как две копейки. Моё повествование будет разделено на 3 части.
В второй части основная тема будет — модели. В третей — изменение логики работы фреймворка.

Перед написанием поста я потрудился и сделал тестовое приложение для того, что бы убедиться на своем опыте в возможности невероятно облегчить работу. Ведь я наверно не один, кто прописывает поля в нескольких местах с жутким осознанием бессмысленности этой работы, особенно на начальном этапе разработки. Наконец появился аналог Entity Framework Code First из .NET, который в свое время вызвал у меня дикий восторг. И так по порядку.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js