Ведение блога в ИТ

User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Ведение блога в ИТ

Post by Мальчик-Одуванчик »

В принципе потом можно и книжку на основе блока издать.
Пусть и стрёмненькую - но свою.
Заметил что в продаже появились книженции на 70-90 страниц по околопрограммистской тематике.
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Ведение блога в ИТ

Post by Sergunka »

Не знаю сильно ли мне блог помог в моем поиске - так как все одно первая же компания где я прошел интервью дала мне офер. Но тем не менее я за пару месяцев надолбил 9 коротеньких статей и как оказалось наиболее востребованной оказалось интервьюшная задача подаренная миру Дейкстрой "спящий парикмахер" http://vyatkins.wordpress.com/2013/12/2 ... r-problem/
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Ведение блога в ИТ

Post by valchkou »

Sergunka wrote:интервьюшная задача подаренная миру Дейкстрой "спящий парикмахер" http://vyatkins.wordpress.com/2013/12/2 ... r-problem/
вместо подхода со sleep() желательно было бы заюзать CountDownLatch или Semaphore
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Ведение блога в ИТ

Post by valchkou »

Sergunka wrote: "спящий парикмахер" http://vyatkins.wordpress.com/2013/12/2 ... r-problem/
Сергей, помоему ты не совсем честно решил задачку.
у тебя клиент всегда идет в зал ожидания. Внезависимости спит парикмакер или занят.
А в условии сказано, что в зал ожидания нужно идти только когда парикмакер занят.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Ведение блога в ИТ

Post by Интеррапт »

Sergunka wrote:Не знаю сильно ли мне блог помог в моем поиске - так как все одно первая же компания где я прошел интервью дала мне офер. Но тем не менее я за пару месяцев надолбил 9 коротеньких статей и как оказалось наиболее востребованной оказалось интервьюшная задача подаренная миру Дейкстрой "спящий парикмахер" http://vyatkins.wordpress.com/2013/12/2 ... r-problem/
Ну и как обычно критика от Интеррапта :D
В чем смысл двух break?

Code: Select all

public void run() {
            while (true) { // as long as the customer is not cut he is in the queue or if not enough sits he is out
                try {
                    this.queue.add(this.iD);
 
                    this.get_haircut(); // take a sit
                    break;
                } catch (IllegalStateException e) {
 
                    System.out.println("There are no free seats. Customer "
                            + this.iD + " has left the barbershop.");
                    break;
                }
            }
        }
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Ведение блога в ИТ

Post by Sergunka »

Интеррапт wrote:
Sergunka wrote:Не знаю сильно ли мне блог помог в моем поиске - так как все одно первая же компания где я прошел интервью дала мне офер. Но тем не менее я за пару месяцев надолбил 9 коротеньких статей и как оказалось наиболее востребованной оказалось интервьюшная задача подаренная миру Дейкстрой "спящий парикмахер" http://vyatkins.wordpress.com/2013/12/2 ... r-problem/
Ну и как обычно критика от Интеррапта :D
В чем смысл двух break?

Code: Select all

public void run() {
            while (true) { // as long as the customer is not cut he is in the queue or if not enough sits he is out
                try {
                    this.queue.add(this.iD);
 
                    this.get_haircut(); // take a sit
                    break;
                } catch (IllegalStateException e) {
 
                    System.out.println("There are no free seats. Customer "
                            + this.iD + " has left the barbershop.");
                    break;
                }
            }
        }

Опа-на, точно лажанулся :D - уже исправил в блоге.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Ведение блога в ИТ

Post by Sergunka »

valchkou wrote:
Sergunka wrote: "спящий парикмахер" http://vyatkins.wordpress.com/2013/12/2 ... r-problem/
Сергей, помоему ты не совсем честно решил задачку.
у тебя клиент всегда идет в зал ожидания. Внезависимости спит парикмакер или занят.
А в условии сказано, что в зал ожидания нужно идти только когда парикмакер занят.
Согласен, что задача выполнена не по спекам как завещал Дейкстра
If the barber is sleeping, then the customer wakes him up and sits in the chair. If the barber is cutting hair, then the customer goes to the waiting room.
В моей интерпретации как в общем-то и в большинстве других на просторах интернета клиент заходит в зал ожидания (т.е. у меня в очередь с блокировкой) а потом уже парикмахер разбирается с ним. Здесь есть свои плюсы и минусы.

Так как я изначально решал задачу показать сильные стороны очереди с блокировкой т.е. простой код и простоту масштабирования (т.е. добавиь еще одного парикмахера очень просто у меня там даже примерчик в конце статьи) то на мой взгляд отступление от спеков есть, но не на столько чтоб уж значительное и не в ущерб функциональности и тем более не сильно стопорит производительность.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Teh Instructor
Уже с Приветом
Posts: 5766
Joined: 25 Feb 2001 10:01
Location: Силиконовая Долина

Re: Ведение блога в ИТ

Post by Teh Instructor »

Flash-04 wrote:ну так сказали - blogspot если лень с собственным хостингом заморачиваться.
+1
blogspot он же Google blogger
Все бесплатно, можно свой CSS, и в HTML писать если надо красиво. А если нет скилзов, то и UI редактор не плох.
Можно на свое доменное имя поставить.
one Nation under God, indivisible, with liberty and justice for all
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Ведение блога в ИТ

Post by crypto5 »

Sergunka wrote: Опа-на, точно лажанулся :D - уже исправил в блоге.
А в чем смысл while(true) {...} ? Все равно получается возможна только одна итерация цикла?
In vino Veritas!
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Ведение блога в ИТ

Post by Sergunka »

Teh Instructor wrote: Можно на свое доменное имя поставить.
К слову сказать у меня сейчас висит свое доменное имя за 18 долларов в год. Хотя до этого было со скидкой за 10 долларов :roll: видимо надо было брать :sadcry:
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Ведение блога в ИТ

Post by Sergunka »

crypto5 wrote:
Sergunka wrote: Опа-на, точно лажанулся :D - уже исправил в блоге.
А в чем смысл while(true) {...} ? Все равно получается возможна только одна итерация цикла?
Здесь я следовал кальке в методе ран в потоке. Думаю можно убрать while вместе с break нафиг.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Ведение блога в ИТ

Post by crypto5 »

Sergunka wrote:
crypto5 wrote:
Sergunka wrote: Опа-на, точно лажанулся :D - уже исправил в блоге.
А в чем смысл while(true) {...} ? Все равно получается возможна только одна итерация цикла?
Здесь я следовал кальке в методе ран в потоке. Думаю можно убрать while вместе с break нафиг.
Еще непонятно почему барбер закрывает офис если нету клиентов. По условиям задачи он вроде должен уснуть?..
Еще обычно для барбера лучше юзать single thread executorservice с blocking queue внутри, и сабмитить в него клиентов как Runnable или Callable, всю логику барбера возьмет на себя ExecutorService
In vino Veritas!
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Ведение блога в ИТ

Post by Sergunka »

crypto5 wrote:
Sergunka wrote:
crypto5 wrote:
Sergunka wrote: Опа-на, точно лажанулся :D - уже исправил в блоге.
А в чем смысл while(true) {...} ? Все равно получается возможна только одна итерация цикла?
Здесь я следовал кальке в методе ран в потоке. Думаю можно убрать while вместе с break нафиг.
Еще непонятно почему барбер закрывает офис если нету клиентов. По условиям задачи он вроде должен уснуть?..
Офис закрывается если долгое время которое определяется в OFFICE_CLOSE нет клиента. Согласен комментарий не очень удачный сейчас перепишу, что мол де время ожидания клиента истекло и в зале ожидания никого нет.

Code: Select all

                        Integer i = this.queue.poll(OFFICE_CLOSE, TimeUnit.MILLISECONDS);
                        if (i==null) break; // no more clients in the queue - close office

Я сделал это исключительно чтоб не убивать процесс - походу удобно для тестирования.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Ведение блога в ИТ

Post by crypto5 »

Да, это мелочь. А вот с ExecutorService лучше разобраться. У нас например в конторе сразу с тревогой смотрят на код, создающий свой собственный тред, так как высока вероятность что где то будут всякие сложно вылавлимые ошибки. А в случае с ExecutorService все надежнее, уже реализовано, и сложности спрятаны за удобным АПИ.
In vino Veritas!
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Ведение блога в ИТ

Post by Sergunka »

crypto5 wrote:Да, это мелочь. А вот с ExecutorService лучше разобраться. У нас например в конторе сразу с тревогой смотрят на код, создающий свой собственный тред, так как высока вероятность что где то будут всякие сложно вылавлимые ошибки. А в случае с ExecutorService все надежнее, уже реализовано, и сложности спрятаны за удобным АПИ.
Здесь без вопросов в реальной имплементации лучше применить известный дизайн патерн тот же http://docs.oracle.com/javase/1.5.0/doc ... cutor.html с очередью с блокировкой сработает очень надежно.

Задача всеж на интервью состоит в том чтоб еще и покодить :fr: перед ашалевшей публикой :D
"A patriot must always be ready to defend his country against his government." Edward Abbey

Return to “Работа и Карьера в IT”