Новости информационных технологий - 33288

Какое-то время назад мой рабочий ноутбук отказался включаться. Просто не реагировал ни на какие попытки, включая отключение батареи. У технической поддержки ушло несколько месяцев на то, чтобы замененить практически все компоненты от матрицы до материнской платы и выяснить, что проблема была в перетертом шлейфе матрицы. Шлейф заменили, машина ожила и вернулась ко мне. Но в первый же день выяснилась интересная особенность — видимо, в пылу борьбы со шлейфом ремонтеры поломали или отключили датчик закрытия крышки. Теперь ноутбук не засыпает при закрытии крышки. Какое-то время я пытался найти способ устранить это самостоятельно, но в этот раз действенных советов Гугл и форумы комании Lenovo, к сожалению, не дали. Второй раз отдавать машину в ремонт просто страшно.

Ок, я не могу решить проблему механически, но может быть можно придумать, какой-то простой workaround. Например, я привык, уходя блокировать компьютер нажатием Win+L, почему бы не сделать shortcut для перевод машины в спящий режим? Выяснилось, что отправить машину в sleep несложно, но вот привязать это к нажатию на Ctrl+Q, например, уже не так тривиально. Можно найти софт, который будет управлять для вас этими функциями. Ну или написать свой. И так вышло, что как раз сегодня есть пара часов времени и стойкое желание попрактиковаться в программировании.

Так как программист я посредственный, то писать решил на C# в Visual Studio Community Edition. Чтобы не усложнять создал пустой проект в формате Windows Form Application с одной формой, в которую добавил контрол notifyIcon. Форму сделал невидимой сразу после старта, а в обработчк MouseDoubleClick добавил код включения и выключения видимости, чтобы форму можно было штатным образом закрыть. Эта мысль пришла не сразу, а после того, как стало понятно, что приложение должно уметь отменить регистрацию глобальных shortcut-ов после своей терминации.Читать полностью »

День добрый.

В связи с созданием большого расширяемого проекта, возникла необходимость дать разработчикам возможность собирать свои пакеты/модули под проект. (Нечто похожее на редактор Feature и WSP Package для SharePoint) Для этого необходимо создать редактор пакетов/модулей для Visual Studio. Для создания расширения под Visual Studio очень мало информации в интернете, а из официального нашел только это. Решил собрать свою библиотеку (VSExtensibilityHelper), которая бы облегчила пользователю создание VSIX дополнений. В ней собраны базовые классы для создания редакторов:

  • BaseEditorFactory — Базовый класс фабрика
  • BaseWinFormsEditorPane — Базовый класс для редактора на основе WinForms компонента
  • BaseWpfEditorPane — Базовый класс для редактора на основе WPF компонента

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

Данный пост — перевод данной статьи

Я работал над новым проектом на React и Redux. Раньше при разработке проектов на React, я работал в одиночку, но в этот раз я был частью команды, где каждый член команды имел некоторый опыт в React и Redux. Проект должен был быть выпущен в продакшн за короткое время.
Читать полностью »

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

Умение правильно обращаться с margin и padding играет очень большую роль в этом деле.

Основные принципы:

  1. Отступы идут от предыдущего элемента к следующему.
  2. Отступ задается последнему возможному элементу в доме.
  3. Отступы нельзя задавать для независимых элементов ( бэм блок ).
  4. У последнего элемента группы, отступ обнуляется (всегда).

Отступ задается последнему возможному элементу в доме

margin(ы) задаются от предыдущего элемента к следующему, от первого ко второму, сверху вниз, слева направо.

imageimage

Это значит.что такие свойства как margin-left и margin-top не используются ( бывают исключения ). Если нужен отступ сверху, то используется padding-top для родителя. По тому же принципу padding-left для родителя.

image

image

Важно соблюдать осмысленную структуру во всем, можно назвать это семантикой. Отступы идут в направлении потока дом дерева, блок сам себя не толкает.
Читать полностью »

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

[1] Записывайте потраченное время. Первый шаг к тому, чтобы начать эффективно использовать время, заключается в том, чтобы выяснить, сколько времени вы тратите сейчас. В течение нескольких дней, в идеале недель, записывайте все, что вы делаете, так часто, как об этом вспоминаете. Представьте, что вы юрист, который должен четко зафиксировать время, потраченное на различные проекты: работу (в различных ее проявлениях), сон, путешествия, домашние дела, общение с семьей, просмотр телевизора и так далее. Это крайне не просто, хотя и казалось бы не сложной задачей, но у меня получилось далеко не с первого раза, но когда я зафиксировала временные показатели одной недели было очень полезно смотреть куда и сколько времени было потрачено, что помогло для дальнейшей оптимизации и делегирования.

[2] Займитесь математикой.
После того, как вы получили исходные данные, рассчитайте время по нескольким категориям. Каковы ваши ощущения? На что вы потратили слишком много времени, а на что недостаточно? Что вам больше всего нравится в вашем расписании? Что бы вы хотели изменить? Мне удобнее всего было вести данный хронометраж в обычной таблице Excel, где желтым цветом я обозначила те дела, которые мне нравятся и вдохновляют меня. И как вы можете догадаться их было не очень много, ну а если на чистоту это всего 6 дел из 127, теперь я активно работаю над тем, чтобы неприятные дела делегировать по максимуму.
Читать полностью »

Ни одно приложение и BI система на данный момент не может существовать без базы данных, наиболее популярными по крайней мере из бесплатных СУБД являются MySQL и PostgreSQL.

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

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

Я учусь на третьем курсе одного из московских вузов, в котором абитуриентам обещают сделать из них широкопрофильных специалистов в сфере IT уже через 4 года. Хотелось бы подробнее написать, как все происходит на самом деле.

Преподаватели

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

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

Кроме того, преподаватели часто недостаточно мотивированы, как и сами студенты. Как только некоторые из них видят, что их предмет не вызывает особого интереса у студентов, они всячески начинают развлекать их чем-то другим. Например, у меня был препод, который вел у нас предмет с необходимостью как можно больше практиковаться, но практики не было вообще… Зато были истории про его жизнь в большом количестве, совершенно не связанные с предметом. Истории вполне уместны, но не тогда, когда они занимают большую часть учебного процесса.
Ну есть, конечно, совершенно другие преподаватели. Их легко отличить, потому что сразу видно, что им нравится учить нас и они относятся к этому, как к важной миссии, а не как к рутине. Таких у нас было 5-6 за четыре семестра (при том, что в общей сложности, было больше 20). К сожалению, классный препод до сих пор остается скорее исключением, чем правилом. Но о том, что же делает его классным, немного позже.

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

в 0:00, , рубрики: Песочница

Россия, Иркутск, 1990 год, ДК «Юный техник»

Каждый вечер мальчишки с нашего района собирались в ДК «Юный техник», который находился на первом этаже обычной пятиэтажки и слушали лекции Виктора Анатольевича, записывали самое важное и зарисовывали схемы, а после с пионерским рвением выпаивали резисторы и транзисторы со старых плат, и раскладывали их по специальным деревянным коробочкам. Все шло своим чередом, уже скоро мне, ученику первого класса, разрешат паять первые простенькие схемы.Читать полностью »

Понадобилось нам выводить данные в виде дерева.
Причем, надо выводить не одно поле, а несколько. Поэтому стандартный TreeView подходит плохо.
В программе использовался WPF и компоненты DevExpress. Там есть навороченный GridControl, предоставляющий в числе прочего просмотр данных в виде дерева. То есть на первый взгляд проблема на полчаса.

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

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

Волшебный квадрат - 1

# Создадим переменную равную наименьшему из 9-ти разрядного числа

counter = 100000000

Далее запускаем цикл пока не достигнем наибольшего 9-ти разрядного числа

while counter < 999999999:
# Разбиваем наще число на разряды
p = [int(n) for n in str(counter)]

 #Теперь складываем отдельные цифры и присваиваем результат
 #переменным согласно расположению в таблице
 diagonal_1   = p[0] + p[4] + p[8]
 diagonal_2   = p[2] + p[4] + p[6]
 gorizontal_1 = p[0] + p[1] + p[2]
 gorizontal_2 = p[3] + p[4] + p[5]
 gorizontal_3 = p[6] + p[7] + p[8]
 vertical_1   = p[0] + p[3] + p[6]
 vertical_2   = p[1] + p[4] + p[7]
 vertical_3   = p[2] + p[5] + p[8]

Завершающий этап: проверка всех вышеперечисленных переменных на равенство
и вывод результатов на экран


#Проверка на равенство
 if diagonal_1 == diagonal_2 and diagonal_1 == gorizontal_1 and diagonal_1 == vertical_1 and  gorizontal_1 == gorizontal_2 and gorizontal_1 == gorizontal_3 and vertical_1 == vertical_2 and vertical_1 == vertical_3 and vertical_1 == gorizontal_1 and vertical_1 == gorizontal_2 and vertical_1 == gorizontal_3:

  #Печать результатов
  print ( p[0], p[1], p[2] )
  print ( p[3], p[4], p[5] )
  print ( p[6], p[7], p[8] )
  print ( 'Счетчик равен: ', counter )
  print ('________________' )

 counter += 1

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


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