Search
Write a publication
Pull to refresh
85
0

User

Send message

Начинающим Java программистам

Reading time2 min
Views1.2M
Программирую на Java вот уже 7 лет. Но на работе часто приходится обучать новое поколение. В связи с этим и решил сделать некоторую шпаргалку, которая, надеюсь, пригодится и для хабрчан. Если кто-то может помочь дополнить чем-то информацию из этой статьи, то пишите! Итак:

Основные ресурсы для начального обучения


  • www.javable.com — сайт со статьями и tutorial'ом по Java. Все в основном на русском.
  • www.exampledepot.com — очень полезный ресурс, где собраны краткие примеры использования классов для тех или иных пакетов
  • java.sun.com — без первоисточника не обойтись. Для любого Java программиста JavaDoc должен быть истиной в последней инстанции. Так же здесь можно найти серию tutorial'ов на все возможные темы.

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

Разбор задач финала чемпионата мира про программированию ACM ICPC 2013

Reading time25 min
Views123K
На прошедшем неделю назад чемпионате мира по командному программированию ACM ICPC 2013 было 11 задач, одну из которых за отведённое время не смогла решить правильно ни одна из команд.

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

В этом году на ACM ICPC был 21 аналитик из Швеции, Нидерландов, США, Словакии, Беларуси и России. И 10 из них были из Яндекса. Все они в разные годы были призёрами ICPC. Специально для Хабра они разобрали все задания чемпионата.

Разбор задачи «Матрёшка» во время трансляции ACM ICPC 2013
Читать дальше →

Техника для проверки подлинности денег

Reading time17 min
Views313K

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

Рассмотрим подробно, как защищены современные валюты, как происходит проверка подлинности (валидация) и что за аппаратура для этого применяется.
Читать дальше →

Создаем личное облако на 3 Тб

Reading time12 min
Views202K
Я бы хотел поделиться одним способом создания личного облака на базе трехтеррабайтного WD MyBook Live. Нет, я не буду даже упоминать про wd2go и их «полуоблака», которые по сути являются только доступами к самому NAS через сервисы WD при помощи довольно корявых Java-апплетов. В этой статье речь пойдет о «честном» облаке, работающем на MBL при помощи ownCloud.
Это решение подойдет тем, кто мечтает о личном аналоге Dropbox, файлы в котором хранятся не «где-то там», а на конкретном физическом носителе, и ограничены только его объемом, без необходимости платить ежемесячно за этот объем (пренебрегая абонентской платой за интернет и стоимостью электроэнергии).
Большинство решений подобной задачи требуют достаточно много покопаться в интернете и опираются на хорошее знание Linux-систем. В данном посте я попытаюсь дать наиболее полный и адекватный HOW-TO на русском, чего сам в интернете не нашел. Так что многое пришлось делать методом проб и ошибок на свой страх и риск. Реализация данного решения не требует каких-либо фундаментальных знаний Linux, и я постараюсь расписать все наиболее доступно, по шагам.

Если интересно что из этого вышло — добро пожаловать под кат.
Читать дальше →

Умение видеть абстракции

Reading time9 min
Views85K


Моему сыну, как и многим мальчишкам, нравятся автомобили. Причём чем они больше и необычнее — тем больше нравятся. Когда мы идём по улице, а мимо проезжает эвакуатор или снегоуборочная машина, он неизменно дёргает меня за руку, указывает на заинтересовавший его объект и говорит: «Папа, б-р-р!». Говорит он так потому, что ему один год и вышеуказанные два слова составляют 40% его словарного запаса. Тем ни менее, в общем мысль понятна — обратить внимание на автомобиль. Давайте подумаем, каким образом ребёнок в возрасте 8-10 лет сказал бы своему сверстнику то же самое. Что-то вроде «Ух ты, смотри какая крутая тачка!», да? Мысль та же, но обратите внимание — уже шесть слов вместо двух. И, наконец, представьте, каким образом то же самое скажет человек лет в тридцать: «Эй, смотри, да это же Ferrari California 2008-го года выпуска с двигателем V8 мощностью в 454 лошадиных силы и 7-ми скоростной коробкой-автоматом! Она до сотни разгоняется за 3.9 секунды!». Да, здесь уже больше деталей, но, если вы не автомеханик или фанат Ferrari — они вам скорее всего не нужны и не важны. Основная же мысль — всё та же, что и в «Ух ты, смотри какая крутая тачка!» или «Папа, б-р-р!». Но выражена она уже в 30 слов.

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

Мы спасены! Genymotion — забудьте про вашего эмулятора-слоупока

Reading time1 min
Views137K
Думаю, все кто осваивал разработку приложений под Android, сразу же осозновал невозможность тестирования программ без реального устройства. А все потому что официальный Android эмулятор страдает серьезными проблемами с производительностью.
Решение проблемы

10 мифов современного образования

Reading time4 min
Views268K

Миф 1. Университет не должен давать профессию — университет должен учить студента учиться.


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

Недаром, когда идет набор абитуриентов, все вузы кричат: «наши выпускники возглавляют банки, заводы и работают на самых престижных должностях», «мы вас научим тому-то и тому-то, да вообще, всему что только может понадобится».
image
И вот на пятом курсе подходит очередной выпускник к лектору и говорит:
— Профессор, я иду на красный диплом, но не могу найти работу.
— Задача университета — научить человека учится.
— ??
Читать дальше →

Обучение программированию на Java

Reading time8 min
Views119K

Я собираюсь переучить на Java-программистов миллион человек.
Я собрал команду и сделал обучающий сервис, которым могу гордиться.
Рад сообщить, что теперь стать программистом легко, независимо от образования и опыта.

Но обо всем по порядку, много картинок

Книжная полка: Java

Reading time6 min
Views108K
По мотивам «JAVA → Java по-русски. Часть первая: Книги» habrahabr.ru/blogs/java/66568


Добрый день, уважаемые хабровчане!
В предыдущем обзоре Java книг, проведенном пользователем Scala, было рассказано о «практических» книгах, вышедших на рынок в последние три года. Я же хочу рассказать об этих и других книгах с несколько иного ракурса: попытаться выделить ценность информации книг.
Я не любитель читать с монитора, и предпочитаю книги покупать в бумажном варианте. Чтобы сделать осознанный выбор, следует отдавать себе отчет в том, что книга несет некие фундаментальные знания, но никак не сборник «последние фишки». Также в данной статье я хочу упомянуть о других известнейших трудах, не касающихся Java напрямую. Посмотрим, что лучше всего выбрать для обучения языку?
Читать дальше →

Альтернативные крестики-нолики

Reading time3 min
Views92K
Однажды на пикнике я заметил математиков, толпящихся возле игры, интереса к которой я ожидал меньше всего: крестики-нолики.

Вы могли и сами заметить, что игра крестики-нолики смертельно скучна. В ней нет места творческой идее или внезапному озарению. Хорошие игроки всегда играют вничью. Игра неизбежно идёт примерно так:



Но математики на пикнике играли в более изощренную версию игры. В каждой из клеток на квадратном поле они нарисовали поле поменьше:
Читать дальше →

Что такое ВУЗ и чего от него ждать

Reading time4 min
Views49K
Прочитав пост юзера agent0 о нехороших преподавателях, которые читают с бумажки, я решил написать комментарий с дельным советом от новоиспеченного бакалавра. Комментарий немного перерос в статью.
Прошу, перед прочтением этого поста ознакомиться с первой статьей, что бы лучше понять суть.

Я сейчас заканчиваю четвертый курс в одном из Одесских технических вузов, параллельно с этим у меня уже набегает четвертый год стажа работы web-разработчиком. Я работал на фрилансе, делая убогие сайты на joomla, позже, работая в аутсорс компании дорос до свободного оперирования несколькими фреймворками, до хайлоадов и небольшой работой тимлидом первым помощником тимлида в становлении команды. Сейчас у меня свой, большой проект и небольшой магазин техники. Я, оглядываясь на мой студенческий и рабочий опыт, могу утвердить, что я понимаю о чем говорю.
Читать дальше →

Комментировать или не комментировать?

Reading time10 min
Views71K
По-настоящему хороший комментарий — тот,
без которого вам удалось обойтись.
Дядюшка Боб


В последнее время меня стали очень утомлять оживлённые дебаты о том, нужно ли комментировать код. Как правило, по одну сторону баррикад — самоуверенные джуниоры, имеющие непререкаемую позицию вида «А как же его не комментировать, ведь без комментариев непонятно будет!». По другую — умудрённые опытом сеньоры. Они понимают, что если возможно обойтись без комментариев, то «Лучше бы, чёрт возьми, так и сделать!». Наверное, у многих жажда комментировать идёт со студенческой скамьи, когда товарищи преподаватели заставляли комментировать каждую строчку, «чтобы студент лучше разобрался». В реальном проекте не должно быть кучи комментариев, которые только и делают, что засоряют код. Впрочем, я не агитирую вообще не писать комментарии, но если вам удалось написать такой код, который не требует пояснений, то расценивайте это, как свою маленькую победу. Сразу хотелось бы сослаться на нескольких очень умных книжек, на основе которых формировалась моя позиция. Я люблю и уважаю авторов этих работ, полностью разделяя их мнение.
Читать дальше →

Легальная минимизация налогов в Украине для ИТ компаний

Reading time9 min
Views35K
В 1935 году судья Дж. Сандерленд выразил принципиальную позицию Верховного Суда США:
«Право налогоплательщиков избегать налогов…
с использованием всех разрешенных законами
средств никем не может быть оспорено»


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

Сразу оговорюсь, чтобы вы понимали о чем будет идти речь: во-первых, я буду рассказывать только о законных методах минимизации налогов, во-вторых, моя схема создана специально для компаний определенного типа, а именно ИТ компаний, которые работают в сфере ИТ услуг и имеют, как правило, относительно небольшой оборот (до 10 миллионов долларов в год) и высокую маржинальность. Для компаний, которые не подходят под мое описание, будут несколько иные схемы минимизации, и почему – будет понятно из статьи ниже.

Немного о том, как все устроено


Для начала нужно понимать, что не платить налоги вообще – не получится. Можно и нужно платить минимум, но всё же платить. Любая предпринимательская деятельность в Украине должна регистрироваться, и с доходов от неё должны платиться налоги. Если вы до сих пор стараетесь работать в черную, должен вас предостеречь, с недавнего времени это стало опасно, чем именно расскажу ниже.
Если вы только начинаете свою деятельность, начать нужно с регистрации СПД или юр. лица. Даже если не планируете создавать транснациональную корпорацию, а банально фрилансите, это тоже считается предпринимательской деятельностью.
Если же предпринимательская деятельность уже идет, и все регистрации давно есть, всегда можно перейти на удобную систему налогообложения, такая возможность по закону дается каждый квартал.

Схема минимизации


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

Десять возможностей C++11, которые должен использовать каждый C++ разработчик

Reading time12 min
Views541K
В данной статье рассматривается ряд возможностей С++11, которые все разработчики должны знать и использовать. Существует много новых дополнений к языку и стандартной библиотеке, эта статья лишь поверхностно охватывает часть из них. Однако, я полагаю, что некоторые из этих новых функций должны стать обыденными для всех разработчиков С++. Подобных статей наверное существует много, в этой я предприму попытку составить список возможностей, которые должны войти в повседневное использование.

Сегодня в программе:
  • auto
  • nullptr
  • range-based циклы
  • override и final
  • строго-типизированный enum
  • интеллектуальные указатели
  • лямбды
  • non-member begin() и end()
  • static_assert и классы свойств
  • семантика перемещения
Читать дальше →

Волшебное решето Эратосфена

Reading time4 min
Views75K
image
Наверняка все, кто читает этот пост не раз использовали, или хотя бы слышали о решете Эратосфена — методе отыскания простых чисел. Сама проблема получения простых чисел занимает ключевое место в математике, на ней основаны некоторые криптографические алгоритмы, например RSA. Есть довольно много подходов к данной задаче, но в этой статье я остановлюсь на некоторых модификациях самого простого из них — решета Эратосфена.
Читать дальше →

Как начать работать с GitHub: быстрый старт

Reading time6 min
Views1.3M


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →

Скорости разработки и исполнения, не достижимые на С

Reading time20 min
Views59K
В продолжении статьи о кроссплатформенной и кросс-аппаратной оптимизации, на примере задачи поиска полным проходом по таблице из 5 полей и 10 000 000 строк, и неизбежности этой задачи даже при индексном поиске, я покажу как ускорить такой поиск в 3.5-5.3 раза с использованием C++ независимо от аппаратной платформы.
В предыдущей статье нам удалось ускорить поиск в 1.3 раза: GitHub.com
Мы не будем банально описывать конструкции языка, а покажем преимущества C++ при решении одного из этапов реальной задачи.
Мы по-прежнему пишем кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и используем в них C и частично реализованный стандарт C++11.
Для упрощения понимания мы все ещё пишем без индексного поиска, но это решение в дальнейшем будет использоваться при индексном поиске.
Читать дальше →

Эволюция альтруизма и P2P

Reading time10 min
Views24K
Недавно я слушал по радио передачу об эволюции альтруизма. Обсуждался вопрос о том, каким образом «ген альтруизма» выдерживает естественный отбор. Это обсуждение навело меня на мысли о том, какие функции должны присутствовать в современных сетевых приложениях, чтобы они «выживали» в естественном отборе.
Сначала немного о биологии...

Как хвост виляет собакой. Азбука пропаганды

Reading time4 min
Views210K
Чем доступнее информация, тем больше её вокруг. Чем быстрее она распространяется, тем меньше остаётся времени на то, чтобы её проверить. Постепенно информационная среда превращается в некое подобие «белого шума». Всё труднее строить внутри себя новые информационные фильтры, чтобы отсеять лишнее: убрать в сторону лозунги, агитацию, пропаганду, а оставить только то, что на самом деле кроется за ними. А манипулировать нашими мыслями пытаются постоянно, и я говорю не о 25-ом кадре (он не работает), а о более земных вещах — приёмах пропаганды, которые так умело (а зачастую — очень топорно) используют политики, рекламщики и вообще, все, кому не лень. Об этих приёмах и пойдёт речь в статье.

Хвост виляет собакой. ("Wag the dog") — чтобы избежать большого скандала или «замять», оставить незамеченным какое-нибудь важное, но неприятное событие, часто используется простой, но хитрый и ловкий приём, который англоязычные политтехнологи называют «Wag the dog», а русскоязычные — «Хвост виляет собакой». Он заключается в том, чтобы вовремя поднять волну обсуждения вокруг вопроса второстепенной важности, на фоне которой другое, более важное событие или действие пройдёт незаметно.
Примеры таких вопросов: Отмена перехода на зимнее время, российское гражданство Депардье, поездка Путина или Саши Грей на Ладе Калине по России, полёты со стерхами и т.д.
Своё название этот приём получил в честь английского выражения tail wagging the dog, который, в свою очередь, появился из следующего народного пассажа:
— Почему собака виляет хвостом?
— Потому, что собака умнее, чем хвост. Если бы хвост был умнее, он вилял бы собакой.

Ещё 7 приёмов - под катом

Учим гипотетическую страну читать: как можно работать на новом рынке

Reading time7 min
Views43K


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

На момент начала вашей работы в стране издано 20 книг, самые известные — это Библия, «Война и мир» Толстого, справочник агронома и Камасутра. Последняя расходится широко, но вы подозреваете, что благодаря картинкам. Культуры чтения нет (но она была когда-то давно), нормальных книг нет, понимания зачем читать — тоже нет. Денег для федеральной программы или чего-то ещё у вас нет, и поддерживать вас централизованно никто не будет.

Итак, что вы будете делать?
Пожалуйста, задумайтесь над ответом на секунду, прежде чем идти ниже

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Date of birth
Registered
Activity