Search
Write a publication
Pull to refresh
28
0
Александр Богданов @synchrone

User

Send message

Так ты, значит, хотел быть программистом…

Reading time5 min
Views3.2K
BY SCOTT C. REYNOLDS

Сколько ты себя помнишь, компьютеры и электроника привлекали тебя. К моменту твоего совершеннолетия ты уже верно стоял на пути профессионального программиста. Первая интернетская золотая лихорадка была в самом разгаре, и вас, нердов, повсюду величали героями Новой Экономики на обложках журналов Fast Company и Wired, и нерды гребли деньги лопатой, делая то же, что любишь делать ты.
Читать дальше →

Семь принципов успешного социального продукта, которые вам надо знать

Reading time6 min
Views5.3K
Социальные продукты — это весьма интересная птица. Даже для самого опытного продакт-менеджера, социальные продукты остаются неуловимыми. И хотя есть много очевидных истин про них, существует масса способов продумать их неправильно. Особенно если вы глубоко в текущем моменте, принимаете решения на уровне пикселей, стараетесь помнить что же именно важно, — и общая картина размывается.

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

Доброкнижка про HTML5 от Google

Reading time1 min
Views2.3K
Пока в интернетах идут войны на тему HTML5, убьет он Flash или нет, компания Google выпустила онлайн книгу 20 Things I Learned About Browsers & The Web. И это действительно книга!

Ребята создали веб-приложение, напоминающее детскую книгу, ее можно листать, оставлять закладки, а посвящена она веб-технологиям.
Читать дальше →

Dingoo A320 — урожайный год!

Reading time4 min
Views23K

Не секрет, что в США полным ходом идет E3 — крупнейшее событие в игровой индустрии. Sony, Nintendo, Microsoft — все показывают свои новейшие достижения в области развлечений. И лишь одного революционного продукта на этой выставке вы никогда не увидите. Это портативная игровая консоли Dingoo A320. Более года прошло с появления «на сцене» этого весьма неоднозначного гаджета. Нет смысла повторять все дифирамбы в честь Dingoo, его детальный unbox и обзор уже был на Хабре. Лучше попробуем понять причины его воистину бешеной популярности среди гиков.

Итак, мечту человечества о портативном устройстве, на котором можно безнаказанно предаваться ностальгии по игровым системам Nintendo, Sega, NeoGeo и Capcom воплотила в жизнь маленькая и довольно бедная компания Shenzhen Dingoo Digital Co. Да, прямо «из коробки», без манипуляций с прошивкой и плясок с бубном вы можете эмулировать игры от перечисленных выше консолей просто скопировав их в память устройства.
Читать дальше →

Пасхальные яйца от Google

Reading time2 min
Views22K
image
В последнее время часто стал нарываться на какие-то скрытые приколы и забавности от Гугла. Решил собрать воедино все, что знаю (+ что удалось нагуглить).

Думаю, многое из этого всем давно известно. Но надеюсь для части читателей здесь будет и новая информация. Просто, захотелось красиво оформить и собрать в одну кучу.
Читать дальше →

Как нанять на работу идиота

Reading time6 min
Views7.5K
Я помню, как идеалистично настроен я был, собираясь нанять своего первого работника. После общения с плохими боссами я много думал о том, как я стану классным руководителем. Я прочитал кучу книг и точно знал что:

— я найму людей которые умнее, чем я и нацелены на результат
— доверять им, дать им делать свою работу и предоставить все нужные ресурсы для этого
— платить им хорошую зарплату и другие приятности. Работать из дома? Почему-бы и нет.
— не отметать резюме только потому, что в них нет нужных ключевых слов. В конце концов я ищу Умных Людей, Которые Делают Дело, а не тех кто хорошо проходит интервью.

Была только одна проблема – в то время я еще не вполне был готов позволить себе нанять работников. Продаж вполне хватало чтобы прокормить бизнес и его владельца, но достаточного запаса не было. Я хотел бы иметь в банке минимум шестимесяную зарплату, поточу что цикл продажи продукта занимал несколько месяцев.
Читать дальше →

Как выбрать диагональ и разрешения экрана?

Reading time1 min
Views53K
Ниже представлен график в помощь тем, кто выбирает экран для домашнего кинотеатра.

График зависимость расстояния просмотра от диагонали экрана

THX (Tomlinson Holman’s eXperiment) — требования к высококачественным системам домашнего кинотеатра. Чтобы кинотеатр соответствовал THX, сидящий на заднем ряду кинотеатра должен иметь угол просмотра экрана по крайне мере 26°. Рекомендуемый угол просмотра 36° (англ).

Видимость преимуществ 480р, 720р и 1080р рассчитана на основе характеристик человеческого зрения. Человек с нормальным зрением способен обнаружить или отделить детали размером в 1 угловую минуту (англ).

Рассчеты взял тут, идею графика взял на Engadget. Этот же график в SVG. Для диагоналей 40—200": png и svg.

UPD (18.03): С подачи MaximKat заменил в графиках текст «Видны преимущества ...» на более точный «Видны все преимущества ...».

Похороны копирайта

Reading time1 min
Views780
image
День Пирата?
У пиратов должен быть свой праздник, потому что мы любим пить, петь и веселиться! Так подумали в Пиратской Партии и стали выбирать дату. И выбрали для пиратов число «Пи», приблизительно равное 3.14, что соответствует 14 марта. Но празднику необходимо красивое пиратское название!

День Весёлого Пирро!
Йо-хо-хоу! С датой определились, но нужно дать название празднику и придумать символ. Ну какой же пират без попугая! Попугай — самая пиратская птица (хотя ещё и Воробей теперь примазывается). Попугай свободно копирует информацию и может петь песни, хоть его тоже норовят засунуть в клетку. Не помню как, но имя для попугая появилось само собой. Встречайте, Пирро! (Капитан Пирро, как верно меня поправляют). Ну а на великом и могучем, Капитан Пирро предпочитает называться по нашенски — Пиртупирыч!
Читать дальше →

Как я покупал iPod touch на ebay, и как мне пришло не совсем то…

Reading time5 min
Views39K
Привет, image
Я хочу рассказать интересную историю, как я покупал на Ebay плеер Apple iPod touch 32Gb. О том, как я использовал «снайпер», пользовался посредником и о том какие проблемы возникли. Я уже больше полугода делаю покупки из-за рубежа и особых проблем по поиску того что мне надо не возникло.
image
Читать дальше →

Спать мало, но правильно?

Reading time7 min
Views904K
Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
Читать дальше →

Загрузчик фотографий как vkontakte на Flex

Reading time9 min
Views11K
Неделю назад мои знания action script ограничивались тем, как добавить событие onclick на баннер перед загрузкой в баннерную сеть. В качестве загрузчика файлов я использовал swfupload, и очень не хотел влезать внутрь swf-ника и разбираться в коде. Мне не нравится flash, я ни разу не дизайнер и теряюсь, когда вижу все эти слои, кадры, инструменты для рисования звездочек и motion guides.

Потом я наткнулся на эту эту потрясающе-красивую штуку, и узнал, что есть flex. И что flex — это круто, потому что даже такой супер-начинающий как я, с нуля за несколько дней смог написать загрузчик фотографий с предпросмотром, ресайзом на клиенте и upload-баром, примерно такой, какой используется на сайте vkontakte.ru.

Есть три причины, из-за которых я решил использовать flash для загрузки фотографий. Это FileReference, FileReferenceList и flash.display.Bitmap. В 10-й версии флеш плеера у FileReference появилась функция load(), с помощью которой можно просматривать выбранные фотографии в ролике локально без загрузки на сервер. FileReferenceList позволяет в файловом диалоге с помощью shift-а выбрать сразу несколько фотографий. Bitmap делает ресайз картинок перед отправкой на сервер. Все это нельзя сделать на чистом javascript-е.

Итак, пишем загрузчик фотографий как vkontakte на flex (пошаговое пособие для совсем начинающих).
Читать дальше →

Регулярные выражения. Сборник рецептов

Reading time8 min
Views7.9K
Мы каждый день работаем с текстом, решая разные задачи. Проверяем текст на правильность ввода некоторых данных, ищем, заменяем некоторые значения, выделем некоторые данные из текста. Порой объём этих данных значительно возрастает и справиться с такими объёмами текстовой информации за актуальный промежуток времени не получается.

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

Сегодня я хотел бы познакомить вас с книгой Яна Гойвертса и Стивена Левитана «Регулярные выражения. Сборник рецептов», которая поможет вам понять как работать с регулярными выражениями.

Читать дальше →

Реализация алгоритма Дейкстры на C#

Reading time11 min
Views46K

Введение


Всем привет, пишу данный топик как логическое продолжение данной статьи о максимальном потоке минимальной стоимости, в конце которой был затронут алгоритм Дейксты. Соглашусь с автором, что описание и различные реализации алгоритма можно найти без проблем, и «колесо» я не изобретаю, но тем не менее опишу здесь практическую реализацию на языке C#. Кстати отмечу, что использую LINQ, так что для работы необходим NET 3.5.

UPDНаконец-то подчистил код :)

Немного теории


Чтобы сразу не кидали камни в мой огород дам ссылку на очень хорошее описание алгоритма на таком незаметном ресурсе как Википедия :). Там вполне доступно описан алгоритм и особенно рекомендую посмотреть пример. Копировать оттуда материал считаю бессмысленно. Все, считаем что теорию изучили.

Начало


Данный код представляет реализацию алгоритма на взвешенном неориентированном графе. Рассмотрим реализацию этого алгоритма.
Объектами данного алгоритма являются три класса:
• Apoint – класс, реализующий вершину графа
• Rebro – класс, реализующий ребро графа
• DekstraAlgoritm – класс, реализующий алгоритм Дейкстры.
Рассмотрим подробнее данные классы и самые важные методы.
APoint
Данный класс содержит в себе 5 полей:
•public float ValueMetka { get; set; } данное поле отвечает за хранение значений метки данной вершины. В программе под бесконечностью берется очень большое число, например 99999.
•public string Name { get; set; } – имя метки. Данное поле необходимо лишь для выведения удобно читаемого результата.
•public bool IsChecked { get; set; } – означает помечена метка или нет
•public APoint predPoint { get; set; } – «предок» точки, т.е. та точка которая является предком текущей в кратчайшем маршруте.
•public object SomeObj { get; set; } – некий объект
Каких-либо значимых методов данный класс не содержит.
Rebro
Данный класс содержит 3 поля:
•public APoint FirstPoint { get; set; } – начальная вершина ребра
•public APoint SecondPoint { get; set; } – конечная вершина ребра
•public float Value { get; set; } – весовой коэффициент.
Каких-либо значимых методов данный класс не содержит.
DekstraAlgorim
Данный класс представляет собой граф и реализацию алгоритма Дейкстры. Содержит 2 поля:
•public APoint[] points { get; set; } – массив вершин
•public Rebro[] rebra { get; set; }- массив ребер
Таким образом, эти 2 массива отражают граф. Рассмотрим методы:
•private APoint GetAnotherUncheckedPoint()
Данный метод возвращает очередную неотмеченную вершину, наименее удаленную, согласно алгоритму.
•public void OneStep(APoint beginpoint)
Данный метод делает один шаг алгоритма для заданной точке.
•private IEnumerable Pred(APoint currpoint)
Данный метод ищет соседей для заданной точки и возвращает коллекцию точек.
•public string MinPath(APoint begin,APoint end)
Данный метод возвращает кратчайший путь, найденный в алгоритме от начальной точке до конечной. Этот метод используется для наглядного отображения пути
•public void AlgoritmRun(APoint beginp)
Данный метод запускает алгоритм и принимает в качестве входа начальную точку.
Все основные методы описаны, представим процесс работы алгоритма в целом на рис.1. Основной метод OneStep представлен на рисунке 2.
image
Рис.1. Работа алгоритма в целом
image
Рис.2. Работа метода OneStep

Код


Наконец, рассмотрим сам код. В каждом классе написал подробные комментарии.
Читать дальше →

Музыка для программистов

Reading time1 min
Views5.7K
Все мы постоянно слушаем различную музыку: на работе, дома, в транспорте и т.д. Музыка влияет на наше настроение, работоспособность и на кучу других факторов.

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

С иностранной музыкой таких проблем не возникает (так как у меня нет сильных знаний языка), но все равно отвлекает.

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

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

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

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

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста

Байки о несовместимых приложениях

Reading time7 min
Views11K
Это отрывки из бесплатной главы из бумажной книги «The Old New Thing». Они ничему не пытаются научить; это просто короткие забавные эпизоды из будней борцов за совместимость новых версий Windows со старыми приложениями.

Изменяем номер версии Windows


Изменить номер версии, который Windows сообщает программам, не просто, как кажется. Например, некоторые программы проверяют номер версии так:
UINT Ver = GetVersion();
UINT MajorVersion = LOBYTE(uVer);
UINT MinorVersion = HIBYTE(uVer);
if (MajorVersion < 3 || MinorVersion < 10) {
    Error("This program requires Windows 3.1");
}

Представьте себе, как этот код отработает на Windows 95, у которой номер версии 4.0. Вторая проверка срабатывает из-за того, что 0 меньше 10.
И ладно бы программа просто выводила сообщение об ошибке и завершалась. Многие рушились: очевидно было, что их поведение на «неподдерживаемых» версиях Windows никогда не тестировалось.

Таких программ оказалось настолько много, что мы перестали исправлять их по одной, и просто изменили возвращаемый номер версии с 4.0 на 3.95.

Программы для MS-DOS тоже не все гладко реагировали на изменение версии ОС. Это удивительно потому, что к тому времени у MS-DOS уже были десятки выпущенных версий и под-версий, и разработчикам пора было бы уже научиться проверять номер версии. Но например, один пакет программ использовал номер версии DOS как индекс в таблице функций: по собственной функции для каждой вышедшей версии. В таблице было пять функций: от MS-DOS 1.x до 5.x. Когда программа запускалась под MS-DOS 6.0, она вызывала адрес за пределами таблицы, и рушилась.

Изменить номер версии, который Windows сообщает программам, — необходимый, но очень тяжёлый шаг. Пара нажатых клавиш, и падают сотни приложений, отлично работавших до сих пор; теперь отделу совместимости придётся потратить на вылавливание чужих багов лишнюю тысячу человеко-часов.

Читать дальше →

Педалируем Vim

Reading time5 min
Views56K
В этом посте пойдёт речь о широко известной в узких кругах педали для переключения Vim из Normal mode в Insert mode и обратно. Вдохновившись примерами подобных поделок на просторах сети, я решил сделать свой вариант, с преферансом и поэтессами.

Задача


Сделать педаль, представляющую собой USB HID-устройство, при нажатии и удержании которой печатается i, а при отпускании Esc.

Решение


Заказать китайскую педаль PCsensor USB footswitch и запрограммировать её соответствующим образом.

PCsensor USB footswitch
Читать дальше →

Кнопка раздолбая и педалирование Vim

Reading time4 min
Views24K
О кнопке раздолбая я впервые услышал году в 2005-м. Суть устройства была в том, что нажатие спрятанной под ковром кнопки приводило к сворачиванию всех окон на мониторе, дабы внезапно нагрянувший шеф не увидел, чем вы реально занимаетесь на работе. Тогда это позиционировалось как модный гаджет для прогрессивной молодёжи.

Так бы оно и лежало в глубинах памяти, если бы не статья «Педалируем Vim». А тут как раз на столе валялись несколько аппаратных ключей на AT90USB162, что мы выпускаем для защиты своего софта.


Читать дальше →

Разбор финальных задач Яндекс.Алгоритма 2014

Reading time9 min
Views59K
1 августа в офисе Яндекса, открывшемся недавно в Берлине, состоялся финал нашего чемпионата по программированию. И его победителем снова стал известный всем, кто интересуется спортивным программированием, Геннадий Короткевич.

Задания для Алгоритма готовила международная команда. В нее вошли программисты из России, Беларуси, Польши и США. Это специалисты МГУ имени М.В. Ломоносова, Университета Карнеги-Меллон, сотрудники Яндекса и Google. В Яндексе задачи составляли разработчики минского и киевского офиса, а потом проверяли их на своих коллегах. Один из составителей в прошлом году сам был финалистом Алгоритма. Специально для Хабрахабра мы разобрали с авторами все задачи. Кстати, несмотря на то, что соревнование завершено, вы можете попробовать себя в вирутальном контесте.



На победу претендовали многие финалисты. Среди них были победители и призеры АСМ ICPC и TopCoder Open, разработчики Google и Facebook. В финальном раунде сражались призёры Алгоритма-2013 Евгений Капун и Ши Бисюнь, чемпион АСМ ICPC Михаил Кевер, а также один из самых титулованных спортивных программистов мира Пётр Митричев. В этом году побороться за приз решил также Макото Соэдзимо — составитель заданий для Алгоритма-2013 и администратор TopCoder Open.

Борьба за первое место разгорелась между Геннадием Короткевичем и Хосакой Кадзухиро из Токийского университета. Лучший результат — четыре задачи при 66 минутах штрафного времени — показал Короткевич, подтвердив титул чемпиона. Кадзухиро решил столько же задач, но набрал больше штрафного времени (90 минут) и занял второе место. Третье место завоевал Ван Циньши из университета Цинхуа: он решил четыре задачи при 125 минутах штрафа.
Читать дальше →

10 самых популярных видео докладов с 404фест 2013

Reading time3 min
Views17K
image

Как вы знаете, мы тут в своей Самаре каждый год проводим Фестиваль 404, куда приезжают разные люди и делятся опытом. Доклады записываем на видео и выкладываем совершенно бесплатно на свой канал youtube. Предлагаем подборку самых популярных видео докладов за прошлый год.

В прошлом году я уже делал такой пост. Его прочитали почти 30 000 человек. Могу скромно предположить, что этот пост тоже должен получиться интересным и полезным.

Читать дальше →

Information

Rating
Does not participate
Location
Berlin, Berlin, Германия
Registered
Activity