Nice course from openHPI by Elizabeth Press about AI profitability.
Nice course from openHPI by Elizabeth Press about AI profitability.
Key concepts in gamification:
According to Self-Determination Theory by Csíkszentmihályi, there are three basic psychological needs that drive human behavior (and intrinsic motivation):
The top 10 core competencies of product managers:
The six fundamental ways in which people are influenced:
Examples of decision-making biases:
Gamification frameworks and methodologies:
Game mechanics - use voting. Each user may add +1 to idea, content or even other users. More advanced (levelled up) users could have more voting power.
Design psychology principles:
Understanding your user - JTBD - Jobs To Be Done. PM idea: structure Projec Requirements Document (PRD) with JTBD.
Ideation process: Six Thinking Hats (Loyal, Optimism, Critic, Emotion, Creation, Management)
RICE scoring for feature prioritization:
Reach x Impact x Confidence / Effort = RICE Score
Badges naming ideas:
Idea from Strava: You can win medals in certain segments, and when I know I am close to beating a time in a segment, it motivates me to push myself harder.
Idea from Duolingo: Chests may contain rewards such as double XP for the next 15 minutes, a reward that encourages users to keep learning for another 15 minutes, earning extra XP to climb the leaderboard, but also keeping the user learning for 15 more minutes.
Technology drivers of change:
More to read or watch:
“The Famous Computer Cafe” is a radio show from 1980s about the new thing - home computers. 53 episodes have been recovered and are now archived on archive.org. Included are interviews with people like Douglas Adams (The Hitchhiker’s Guide to the Galaxy), Bill Gates, Jack Tramiel (Atari)
Full list of interviews:
Date | Guest | Company | URL |
---|---|---|---|
1984-11-17 | Bill Gates / Kai Nishi | Microsoft | archive.org |
1984-11-18 | Howard Goldberg | Playnet | archive.org |
1984-12-02 | Frank Schwartz / Charles Humphrey | Simon and Schuster / Computer and Software News | archive.org |
1984-12-03 | Bud Grove | Apple Users Group | archive.org |
1984-12-04 | Farley Malorrus | computer astrologist | archive.org |
1984-12-06 | Fred Gladney | C.W. Gladney and Associates | archive.org |
1984-12-06 | Michael Brinda | New Horizons Computer Learning Center | archive.org |
1984-12-07 | Roger Mass | Software Supermarket | archive.org |
1984-12-07 | Steve Roberts | USA Today | archive.org |
1984-12-09 | Jeff Garbers / John Dvorak / Katie Oltman | Microstuf / Infoworld / Passport Software | archive.org |
1984-12-11 | Dave Fradin | First Byte Software | archive.org |
1984-12-12 | John Shirley | Microsoft | archive.org |
1984-12-12 | Timothy Leary | software author | archive.org |
1984-12-19 | Rob Williamson | United Software Technologies | archive.org |
1984-12-20 | Charles Spear and Richard Smiley | Spear Securities Inc. | archive.org |
1984-12-21 | Douglas Adams, Steve Meretzky, Christopher Cerf | Hitchhiker’s Guide to the Galaxy | archive.org |
1984-12-24 | Bart Rhoades part 1 | PC World | archive.org |
1984-12-25 | Bart Rhoades part 2 | PC World | archive.org |
1984-12-26 | Jim Holmes | users groups (TUGNET) | archive.org |
1984-12-26 | Larry Magid | “The Computer File,” L.A. Times | archive.org |
1984-12-27 | Kevin Blaker | Long Beach Micro | archive.org |
1984-12-27 | Timothy Leary part 1 / Paul & Sarah Edwards | software author / Working From Home | archive.org |
1984-12-28 | Timothy Leary part 2 | software author | archive.org |
1985-01-04 | Ron Staley | Computer Aids for the Disabled | archive.org |
1985-01-07 | Alfred Bork | UC Irvine. Educational Technology | archive.org |
1985-01-08 | Bill Atkinson | Apple Computers | archive.org |
1985-01-09 | Barbara Elman | Word Processing News | archive.org |
1985-01-09 | Bill Atkinson | Apple Computers | archive.org |
1985-01-10 | David Jonson | Dr. Disk | archive.org |
1985-01-10 | Jackie Massing / Doug Heineman | Silicon Valley Computer Camp / Xerox | archive.org |
1985-01-11 | Ed Thompson | Harcourt, Brace, Jovanovich | archive.org |
1985-01-14 | Charles Humphrey | Computer and Software News | archive.org |
1985-01-14 | Richard Grant | Auricle, Winners of First Emmy Award for Software | archive.org |
1985-01-15 | Steven Levy | Hackers book | archive.org |
1985-01-16 | Steven Levy / Sid Meier | Hackers / Micropro | archive.org |
1985-01-17 | Jack Tramiel / Bobby Kotick | Atari / Arktronics | archive.org |
1985-01-21 | Barbara Like | Clear Systems | archive.org |
1985-01-22 | Larry Saltzman | Association of Entertainment Industry Computer Professionals | archive.org |
1985-01-24 | Mike Carbonne | Simonton Industries (ergonomic computer furniture) | archive.org |
1985-01-25 | Terry Thormodesgaard and Jim St. Omer Roy | Thor Agency | archive.org |
1985-01-28 | Jim Zuber | Blue Chip Software | archive.org |
1985-02-05 | Randy Cade | Epson West | archive.org |
1985-02-06 | Michael Mock / Chris McDivitt | Indus Systems | archive.org |
1985-02-07 | Christopher Miles | Crystal Network | archive.org |
1985-02-08 | David Jonson | Dr. Disk | archive.org |
1985-02-08 | James Copland | VP of Atari | archive.org |
1985-02-11 | Jim Holmes | users groups (TUGNET) | archive.org |
1985-02-12 | John Reese | Tronix/Monogram | archive.org |
1985-02-13 | Sherrie Rabinowitz & Kit Galloway | The Electronic Cafe | archive.org |
1985-02-14 | Tony Sneed | Tascor | archive.org |
1985-02-25 | Steve Laff | Friendly Computers | archive.org |
1985-02-26 | Hershel Toomim | Biofeedback | archive.org |
1985-07-12 | Joel Berez & Jack Anderson | Infocom / syndicated columnist | archive.org |
List of a developer goals from IEEE article: Measuring Developer Goals.
Information gathering:
Plan and track work, and manage approvals:
Develop, test and commit code:
Experiment, release and rollout:
Monitoring, reliability and configuring infrastructure:
Data management:
Install dependencies:
Clone the source code and build:
To run ardours, you don’t need to install it anywhere, simply run in from the same directory:
Enjoy!
Enable src packages - edit /etc/apt/sources.list and un-comment lines starting with dev-src.
Install dependencies:
Download the source code from https://wiki.wesnoth.org/Download, extract and compile.
To play the game, you don’t need to install it, simply run in from the same directory:
Enjoy!
This blog describes how to use Azure libraries (SDK) for Python to list Samba File Shares and read files and folders on Samba File share on Azure.
Overview of Azure SDKs can be found here.
To create SMB File Share using bicep code use Microsoft.Storage storageAccounts/fileServices/shares
resource as described here.
The following bicep code creates a file share in an existing storage account:
targetScope = 'resourceGroup'
param storageAccountName string
param fileShareName string
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' existing = {
name: storageAccountName
scope: resourceGroup()
}
resource fileService 'Microsoft.Storage/storageAccounts/fileServices@2021-09-01' = {
name: 'default'
parent: storageAccount
}
resource fileShare 'Microsoft.Storage/storageAccounts/fileServices/shares@2023-01-01' = {
name: fileShareName
parent: fileService
properties: {
enabledProtocols: 'SMB'
}
}
It can be invoked from a parent bicep file as follows:
param location string = resourceGroup().location
param fileShareName string = 'samba-file-share'
param storageResourceGroupName string = 'rg-storage'
param storageAccountName string = 'sambastorageaccount'
resource storageResourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' existing = {
name: storageResourceGroupName
location: location
}
module fileShares 'file_service_share.bicep' = {
name: fileShareName
scope: storageResourceGroup
params: {
storageAccountName: storageResourceGroupName
fileShareName: fileShareName
}
}
We are going to use role-based access control (RBAC) with Microsoft Entra ID. Azure Storage accepts OAuth 2.0 access tokens from the Microsoft Entra tenant associated with the subscription that contains the storage account. To do so we have to provide appropriate role for the Service Principal.
List of permissions for File service operations can be found here.
Most of the ‘read’ operations require the following roles:
Microsoft.Storage/storageAccounts/fileServices/fileShares/files/read
Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action
After reviewing list of Azure build in roles it can be found that Storage File Data Privileged Reader
role is what we need. It has the following permissions:
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read",
"Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action"
],
"notDataActions": []
}
]
To assign the role to the Service Principal use the following bicep code:
targetScope = 'resourceGroup'
param fileShareName string = 'samba-file-share'
param storageResourceGroupName string = 'rg-storage'
param storageAccountName string = 'sambastorageaccount'
param principalId string = '...' # object id of samba-file-share-sp
var storageFileDataPrivilegedReaderRole = subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b8eda974-7b85-4f76-af95-65846b26df6d')
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' existing = {
name: storageAccountName
scope: resourceGroup()
}
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = {
name: guid(storageAccountName, principalId, storageFileDataPrivilegedReaderRole)
scope: storageAccount
properties: {
roleDefinitionId: storageFileDataPrivilegedReaderRole
principalId: principalId
}
}
Azure Storage File Share client library for Python used in the code below can be found here.
To run the code install necessary Azure libraries for Python:
pip install azure-identity
pip install azure-storage-file-share
The code below uses ClientSecretCredential
to authenticate with Azure AD and ShareClient
to access the file share:
from azure.identity import ClientSecretCredential
from azure.storage.fileshare import ShareClient, ShareServiceClient
# Set the storage resource group, account, and share names
storage_account = "sambastorageaccount"
share_name = "samba-file-share"
# Set the Azure AD tenant ID, client ID, and client secret for 'samba-file-share-sp'
tenant_id = "..."
client_id = "..."
client_secret = "..."
# Set the account URL
account_url = f"https://{storage_account}.file.core.windows.net"
# Create a client secret credential
credential = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# Create a share client
share_client = ShareClient(account_url, share_name, credential=credential, token_intent="backup")
# List directories and files
directories_and_files = list(share_client.list_directories_and_files())
print(f"directories_and_files: {directories_and_files}")
# Get directory properties
directory_client = share_client.get_directory_client("smb_folder")
directory_properties = directory_client.get_directory_properties()
print(f"directory_properties: {directory_properties}")
Sample response is presented below:
directories_and_files: [{'name': 'smb_folder', 'last_modified': None, 'etag': None, 'server_encrypted': None, 'metadata': None, 'change_time': None, 'creation_time': None, 'last_write_time': None, 'last_access_time': None, 'file_attributes': None, 'permission_key': None, 'file_id': '13835128424026341376', 'parent_id': None, 'is_directory': True}]
directory_properties: {'name': None, 'last_modified': datetime.datetime(2024, 3, 8, 15, 12, 7, tzinfo=datetime.timezone.utc), 'etag': '"0x8DC3F821EBF3806"', 'server_encrypted': True, 'metadata': {}, 'change_time': datetime.datetime(2024, 3, 8, 15, 12, 7, 391437), 'creation_time': datetime.datetime(2024, 3, 8, 15, 12, 7, 391437), 'last_write_time': datetime.datetime(2024, 3, 8, 15, 12, 7, 391437), 'last_access_time': None, 'file_attributes': 'Directory', 'permission_key': '13873210695300244643*12131762314841879338', 'file_id': '13835128424026341376', 'parent_id': '0', 'is_directory': True}
Details regarding ShareClient
class can be found here.
We are going to use role-based access control (RBAC) with Microsoft Entra ID. Azure Storage accepts OAuth 2.0 access tokens from the Microsoft Entra tenant associated with the subscription that contains the storage account. To do so we have to provide appropriate role for the Service Principal.
To list shares we would need the following permissions:
Microsoft.Storage/storageAccounts/fileServices/shares/read
After reviewing list of Azure build in roles it can be found that Reader
role is what we need. It has the following permissions:
"permissions": [
{
"actions": [
"*/read"
],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
To assign the role to the Service Principal use the following bicep code:
targetScope = 'resourceGroup'
param fileShareName string = 'samba-file-share'
param storageResourceGroupName string = 'rg-storage'
param storageAccountName string = 'sambastorageaccount'
param principalId string = '...' # object id of samba-file-share-sp
var readerRole = subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' existing = {
name: storageAccountName
scope: resourceGroup()
}
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = {
name: guid(storageAccountName, principalId, readerRole)
scope: storageAccount
properties: {
roleDefinitionId: readerRole
principalId: principalId
}
}
StorageManagementClient
library for Python used in the code below can be found here.
To run the code install necessary Azure libraries for Python:
pip install azure-identity
pip install azure-mgmt-storage
The code below uses ClientSecretCredential
to authenticate with Azure AD and StorageManagementClient
to list file shares:
from azure.identity import ClientSecretCredential
from azure.mgmt.storage import StorageManagementClient
# Subscription Id
subscription_id = "..."
# Set the storage resource group, account, and share names
storage_resource_group = "rg-storage"
storage_account = "sambastorageaccount"
# Set the Azure AD tenant ID, client ID, and client secret for 'samba-file-share-sp'
tenant_id = "..."
client_id = "..."
client_secret = "..."
# Create a client secret credential
credential = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# Create a storage management client
client = StorageManagementClient(credential=credential, subscription_id=subscription_id)
# List file shares
response = client.file_shares.list(resource_group_name=storage_resource_group, account_name=storage_account)
for item in response:
print(item)
Sample response is presented below:
{'additional_properties': {}, 'id': '/subscriptions/.../resourceGroups/rg-storage/providers/Microsoft.Storage/storageAccounts/sambastorageaccount/fileServices/default/shares/samba-file-share', 'name': 'samba-file-share', 'type': 'Microsoft.Storage/storageAccounts/fileServices/shares', 'etag': '"0x8DC4088F239CCBE"', 'last_modified_time': datetime.datetime(2024, 3, 9, 22, 33, 30, tzinfo=<isodate.tzinfo.Utc object at 0x7f4380077490>), 'metadata': None, 'share_quota': 5120, 'enabled_protocols': 'SMB', 'root_squash': None, 'version': None, 'deleted': None, 'deleted_time': None, 'remaining_retention_days': None, 'access_tier': 'TransactionOptimized', 'access_tier_change_time': datetime.datetime(2024, 3, 8, 10, 45, 36, tzinfo=<isodate.tzinfo.Utc object at 0x7f4380077490>), 'access_tier_status': None, 'share_usage_bytes': None, 'lease_status': 'unlocked', 'lease_state': 'available', 'lease_duration': None, 'signed_identifiers': None, 'snapshot_time': None}
Very nice, short (you will do it in 1h) course by DeepLearning.AI & Sharon Zhou - How Diffusion Models Work.
The sample code to train your own model is built using PyTorch. Includes Sharon showing DDIM - denoising diffusion implicit models sampler, much faster than Denoising diffusion probabilistic models (DDPMs).
Co działa:
Co nie działa:
Proces uczenia się:
Przypisy, notatki:
Rodzaje inteligencji według Howard Gardner:
Thanks to Mozilla’s llamafile it is now super easy to run LLM locally.
Install and register ape as per https://github.com/Mozilla-Ocho/llamafile#gotchas.
Download the model from Hugging Face, make it executable and run it:
Open http://127.0.0.1:8080.