о том, что между ними нет разницы пишут только фанаты редакторов, которые не освоили нормальную ide
Ну у меня есть idea, для джавы ее использую, т.е. вроде бы по вашей класификации IDE освоил. А вот для JS/TS использую vscode и считаю его более удобным чем webstorm.
#!/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/bin/python3.4
# -*- coding: utf-8 -*-
__author__ = 'admin'
api_url = "http://basicdata.ru/api/json/calend/"
from functools import lru_cache
import calendar
import datetime
import urllib.request
import json
def flatten(a):
if isinstance(a, list):
for b in a:
for x in flatten(b):
yield x
else:
yield a
# Генерирует расписание на заданный год по умолчанию
# Все дни с понедельника по пятницу отмечаются рабочими
# Все субботы и воскресенья - выходными
def generate_default_calendar(year):
return group_by_month(
map(lambda x: (x[0], x[1] < 6),
map(lambda x: (x[0], x[1] + 1),
filter(lambda x: x[0] > 0,
flatten(calendar.Calendar.yeardays2calendar(calendar.Calendar(), year))
)
)
)
)
# Разделяет дни на группы по месяцам
def group_by_month_inner(items):
month = []
for day, flag in items:
if month and month[-1][0] > day:
# new month starting
yield month
month = []
month.append((day, flag))
if month:
yield month
def group_by_month(items):
return list(group_by_month_inner(items))
# Загружает дни-исключения
@lru_cache(maxsize=None)
def load_exceptions(apiurl, year):
return json.loads(urllib.request.urlopen(apiurl).read().decode('utf8'))["data"][str(year)]
# Меняет значения структуры по умолчанию для дней-исключений
def apply_exceptions(months, exc):
i = 0
for m in months:
newm = []
i += 1
for d in m:
if str(i) in exc and str(d[0]) in exc[str(i)]:
d = (d[0], exc[str(i)][str(d[0])]["isWorking"] != 2)
newm.append(d)
yield newm
# Удаляет все выходные, конвертирует кортежи в простые дни месяца
def filter_holidays(months):
for m in months:
yield list(
map(
lambda x: x[0],
filter(
lambda x: x[1],
m
)
)
)
# Получает все рабочие дни за определенные месяц/год в виде массива. Если указать месяц, вернет только его
def get_workdays(year=None, month=None):
if year is None and month is None:
year = datetime.datetime.now().year
month = datetime.datetime.now().month
if month is None:
return list(filter_holidays(apply_exceptions(generate_default_calendar(year), load_exceptions(api_url, year))))
else:
return get_workdays(year)[month - 1]
# Считает кол-в рабочих дней в году/месяце
@lru_cache(maxsize=None)
def count_workdays(year=None, month=None):
if month is None and year is None:
return len(get_workdays())
elif month is not None:
return len(get_workdays(year, month))
else:
return sum(list(map(lambda x: len(x), get_workdays(year))), 0)
@lru_cache(maxsize=None)
def _get_expected_hours(year, month, day):
return len(list(filter(lambda x: x < day, get_workdays()))) * 8
# Возвращает сколько часов ты уже должен был отработать
def get_expected_hours():
return _get_expected_hours(datetime.datetime.now().year, datetime.datetime.now().month, datetime.datetime.now().day)
# Считает заработанные деньги исходя из зарплаты и кол-ва отработанны часов
@lru_cache(maxsize=None)
def earned(salary, hours):
return hours / (count_workdays(datetime.datetime.now().year, datetime.datetime.now().month) * 8) * salary
def print_earned_with_stats(hours, salary=None):
if salary is None:
salary = 50000
real = earned(salary, hours)
expected = earned(salary, get_expected_hours())
print("Earned: ", real, " Expected: ", expected)
if real > expected:
print("Well done, you've already earned extra ", real - expected, " money -", hours - get_expected_hours(),
" extra hours worked")
elif real < expected:
print("You should work extra ", get_expected_hours() - hours, " hours to catch schedule")
else:
print("Going on schedule!")
if __name__ == '__main__':
import sys
_salary = None
_hours = None
if len(sys.argv) > 1:
_hours = int(sys.argv[1])
if len(sys.argv) > 2:
_salary = int(sys.argv[2])
if _hours is None:
_hours = 8
print_earned_with_stats(_hours, _salary)
Подпишусь под каждым словом. От себя добавлю нулевой пункт:
0. Если берете сравнительно большой проект с фиксированной ценой — не стесняйтесь брать деньги с клиента за предварительную оценку, детальную разработку ТЗ и плана работ.
«Впервые я пережил ужас – подлинный ужас, а не встречу с демонами или призраками, живущими в моем воображении, – в один октябрьский день 1957 года. Мне только что исполнилось десять. И, как полагается, я находился в кинотеатре – в театре “Стратфорд” в центре города Стратфорд, штат Коннектикут.
…
И вот как раз в тот момент, когда в последней части фильма пришельцы готовятся к атаке на Капитолий, лента остановилась. Экран погас. Кинотеатр был битком набит детьми, но, как ни странно, все вели себя тихо. Если вы обратитесь к дням своей молодости, то вспомните, что толпа детишек умеет множеством способов выразить свое раздражение, если фильм прерывается или начинается с опозданием: ритмичное хлопанье; великий клич детского племени “Мы хотим кино! Мы хотим кино! Мы хотим кино!”; коробки от конфет, летящие в экран; трубы из пачек от попкорна, да мало ли еще что. Если у кого-то с четвертого июля сохранилась в кармане хлопушка, он непременно вынет ее, покажет приятелям, чтобы те одобрили и восхитились, а потом зажжет и швырнет к потолку.
Но в тот октябрьский день ничего похожего не произошло. И пленка не порвалась – просто выключили проектор. А дальше случилось нечто неслыханное: в зале зажгли свет. Мы сидели, оглядываясь и мигая от Яркого света, как кроты.
На сцену вышел управляющий и поднял руку, прося тишины, – совершенно излишний жест. Я вспомнил этот момент шесть лет спустя, в 1963 году, в ноябрьскую пятницу, когда парень, который вез нас домой из школы, сказал, что в Далласе застрелили президента.
…
Мы сидели на стульях, как манекены, и смотрели на управляющего. Вид у него был встревоженный и болезненный – а может, это было виновато освещение. Мы гадали, что за катастрофа заставила его остановить фильм в самый напряженный момент, но тут управляющий заговорил, и дрожь в его голосе еще больше смутила нас.
– Я хочу сообщить вам, – начал он, – что русские вывели на орбиту вокруг Земли космический сателлит. Они назвали его… “спутник”.
Сообщение было встречено абсолютным, гробовым молчанием. Полный кинотеатр детишек с ежиками и хвостиками, в джинсах и юбках, с кольцами Капитана Полночь, детишек, которые только что узнали Чака Берри и Литтла Ричардса и слушали по вечерам нью-йоркские радиостанции с таким замиранием сердца, словно это были сигналы с другой планеты. Мы выросли на Капитане Видео и “Терри и пиратах”. Мы любовались в комиксах, как герой Кейси разбрасывает, как кегли, целую кучу азиатов. Мы видели, как Ричард Карлсон в “Я вел тройную жизнь” (I Led Three Lives) тысячами ловит грязных коммунистических шпионов. Мы заплатили по четверть доллара за право увидеть Хью Марлоу в “Земле против летающих тарелок” и в качестве бесплатного приложения получили эту убийственную новость.
Помню очень отчетливо: страшное мертвое молчание кинозала вдруг было нарушено одиноким выкриком; не знаю, был это мальчик или девочка, голос был полон слез и испуганной злости: “Давай показывай кино, врун!»
Управляющий даже не посмотрел в ту сторону, откуда донесся голос, и почему-то это было хуже всего. Это было доказательство. Русские опередили нас в космосе. Где-то над нашими головами, триумфально попискивая, несется электронный мяч, сконструированный и запущенный за железным занавесом. Ни Капитан Полночь, ни Ричард Карлсон (который играл в “Звездных всадниках” (Riders to the Stars), боже, какая горькая ирония) не смогли его остановить. Он летел там, вверху.., и они назвали его “спутником”. Управляющий еще немного постоял, глядя на нас; казалось, он ищет, что бы еще добавить, но не находит. Потом он ушел, и вскоре фильм возобновился."
Возможно кому-нибудь пригодится.
Стандартно chrome и chromium не позволяют задавать прокси в настройках браузера. (Предлагается выставить системные настройки прокси)
Но есть опция командной строки через которую в chromium можно задавать прокси:
chromium-browser --proxy-server=localhost:8008
Также есть возможность запустить хромиум в чистом новом профайле
tar czvf /root/VPSbackups/VPSbackup.tar.gz -N"$LAST" --exclude-from=/VPSbackups/tar.excludelist.txt /etc/ /root/exportdb/ /home/username/ > /root/VPSbackups/backup.log 2>&1
##где tar.excludelist.txt - список исключений;
##а LAST - файл с датой в формате date +'%F %R:%S'
LAST=`cat /root/VPSbackups/lasttimebackup.log`
Еще к удобствам можно отнести работу с хистори и настройку окружения:
1. Ведение лога истории с datestamp'ом:
export HISTTIMEFORMAT='%F %T '
2. Занесение команды в .bash_history сразу же, после нажатия enter (а не после завершения сеанса), что весьма удобно при одновременной работе в нескольких сессиях:
PROMPT_COMMAND='history -a;history -n'
3. Удобная настройка PS1 (чтобы было видно и юзера/хост и желательно дату и время [у меня некоторые сессии висят неделями])
export PS1='\033[00;32m\][`date +%d" "%h" "%Y" "%T`] \u@\h \w\n \$\[\033[00m\] '
4. Увеличение размера хистори (при активной работе 500 — это очень мало)
export HISTSIZE=100500
5. Говорим башу не заносить в хистори повторяющиеся друг за другом команды:
export HISTCONTROL=ignoredups
6. Отключаем занесение «бесполезных» с точки зрения истории команд:
export HISTIGNORE="&:ls:[bf]g:exit:[ ]*:ssh:history"
7. Не забываем про bash_completition (который предварительно надо не забыть подключить):
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
— 8. $ ls some-file
$ cp !$ !$.back
( !$ — заменяется на последний аргумент [в данном случае some-file] )
9. фича только для bash 4 и выше (в 3, емнип, не работает)
shopt -s globstar
и echo ** будет практически равносилен find.
Вроде все, что вспомнил (:
Ну у меня есть idea, для джавы ее использую, т.е. вроде бы по вашей класификации IDE освоил. А вот для JS/TS использую vscode и считаю его более удобным чем webstorm.
2. Одинокий мужчина лишился прямой кишки во время самолечения простатита.
3. Пасхальный заяц загрыз отца семерых детей.
4. Группу заблудившихся школьников вывел из лесу дождевой червь.
5. Кошка утонула в менструации хозяйки.
6. Мальчик-телепат глушит радио-сигналы во время мастурбации.
7. Девочку разорвало на экзамене резинкой ее «стрингов».
8. На МКС голод — космонавты едят сперму друг друга.
9. Ребенок онанировал кипятильником, повторяя за матерью.
10. На ночь родители мазали девочку селедочными кишками.
11. Нижегородский крановщик подрабатывал виселицей.
12. Отец омрачил день рождения ребенка расчленением матери.
13. Пылесос с искусственным интеллектом устроил кровавую бойню.
14. Дизайнер могил: не миф, а реальность.
15. Причиной ДТП стал бобер-педераст.
16. Перелетные птицы оскорбили пометом ветеранов.
17. Школьник разбил голову, поскользнувшись на останках учителя.
0. Если берете сравнительно большой проект с фиксированной ценой — не стесняйтесь брать деньги с клиента за предварительную оценку, детальную разработку ТЗ и плана работ.
…
И вот как раз в тот момент, когда в последней части фильма пришельцы готовятся к атаке на Капитолий, лента остановилась. Экран погас. Кинотеатр был битком набит детьми, но, как ни странно, все вели себя тихо. Если вы обратитесь к дням своей молодости, то вспомните, что толпа детишек умеет множеством способов выразить свое раздражение, если фильм прерывается или начинается с опозданием: ритмичное хлопанье; великий клич детского племени “Мы хотим кино! Мы хотим кино! Мы хотим кино!”; коробки от конфет, летящие в экран; трубы из пачек от попкорна, да мало ли еще что. Если у кого-то с четвертого июля сохранилась в кармане хлопушка, он непременно вынет ее, покажет приятелям, чтобы те одобрили и восхитились, а потом зажжет и швырнет к потолку.
Но в тот октябрьский день ничего похожего не произошло. И пленка не порвалась – просто выключили проектор. А дальше случилось нечто неслыханное: в зале зажгли свет. Мы сидели, оглядываясь и мигая от Яркого света, как кроты.
На сцену вышел управляющий и поднял руку, прося тишины, – совершенно излишний жест. Я вспомнил этот момент шесть лет спустя, в 1963 году, в ноябрьскую пятницу, когда парень, который вез нас домой из школы, сказал, что в Далласе застрелили президента.
…
Мы сидели на стульях, как манекены, и смотрели на управляющего. Вид у него был встревоженный и болезненный – а может, это было виновато освещение. Мы гадали, что за катастрофа заставила его остановить фильм в самый напряженный момент, но тут управляющий заговорил, и дрожь в его голосе еще больше смутила нас.
– Я хочу сообщить вам, – начал он, – что русские вывели на орбиту вокруг Земли космический сателлит. Они назвали его… “спутник”.
Сообщение было встречено абсолютным, гробовым молчанием. Полный кинотеатр детишек с ежиками и хвостиками, в джинсах и юбках, с кольцами Капитана Полночь, детишек, которые только что узнали Чака Берри и Литтла Ричардса и слушали по вечерам нью-йоркские радиостанции с таким замиранием сердца, словно это были сигналы с другой планеты. Мы выросли на Капитане Видео и “Терри и пиратах”. Мы любовались в комиксах, как герой Кейси разбрасывает, как кегли, целую кучу азиатов. Мы видели, как Ричард Карлсон в “Я вел тройную жизнь” (I Led Three Lives) тысячами ловит грязных коммунистических шпионов. Мы заплатили по четверть доллара за право увидеть Хью Марлоу в “Земле против летающих тарелок” и в качестве бесплатного приложения получили эту убийственную новость.
Помню очень отчетливо: страшное мертвое молчание кинозала вдруг было нарушено одиноким выкриком; не знаю, был это мальчик или девочка, голос был полон слез и испуганной злости: “Давай показывай кино, врун!»
Управляющий даже не посмотрел в ту сторону, откуда донесся голос, и почему-то это было хуже всего. Это было доказательство. Русские опередили нас в космосе. Где-то над нашими головами, триумфально попискивая, несется электронный мяч, сконструированный и запущенный за железным занавесом. Ни Капитан Полночь, ни Ричард Карлсон (который играл в “Звездных всадниках” (Riders to the Stars), боже, какая горькая ирония) не смогли его остановить. Он летел там, вверху.., и они назвали его “спутником”. Управляющий еще немного постоял, глядя на нас; казалось, он ищет, что бы еще добавить, но не находит. Потом он ушел, и вскоре фильм возобновился."
Стивен Кинг
Стандартно chrome и chromium не позволяют задавать прокси в настройках браузера. (Предлагается выставить системные настройки прокси)
Но есть опция командной строки через которую в chromium можно задавать прокси:
Также есть возможность запустить хромиум в чистом новом профайле
ru.wikipedia.org/wiki/Список_телефонных_кодов_зон_и_городов_России_на_8
ru.wikipedia.org/wiki/Телефонный_план_нумерации_России
1. Ведение лога истории с datestamp'ом:
export HISTTIMEFORMAT='%F %T '
2. Занесение команды в .bash_history сразу же, после нажатия enter (а не после завершения сеанса), что весьма удобно при одновременной работе в нескольких сессиях:
PROMPT_COMMAND='history -a;history -n'
3. Удобная настройка PS1 (чтобы было видно и юзера/хост и желательно дату и время [у меня некоторые сессии висят неделями])
export PS1='\033[00;32m\][`date +%d" "%h" "%Y" "%T`] \u@\h \w\n \$\[\033[00m\] '
4. Увеличение размера хистори (при активной работе 500 — это очень мало)
export HISTSIZE=100500
5. Говорим башу не заносить в хистори повторяющиеся друг за другом команды:
export HISTCONTROL=ignoredups
6. Отключаем занесение «бесполезных» с точки зрения истории команд:
export HISTIGNORE="&:ls:[bf]g:exit:[ ]*:ssh:history"
7. Не забываем про bash_completition (который предварительно надо не забыть подключить):
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
— 8. $ ls some-file
$ cp !$ !$.back
( !$ — заменяется на последний аргумент [в данном случае some-file] )
9. фича только для bash 4 и выше (в 3, емнип, не работает)
shopt -s globstar
и echo ** будет практически равносилен find.
Вроде все, что вспомнил (: