GitHub
Tests: 12 • Commercial: 2 • Pet projects: 4 • Legacy: 4
Total: 22

.NET Framework

Test
2021

Project Request

ASP.NET MVC • C# • SQL Server
Idea of the project: if someone wants to order a project development, here you can send an application.
Test
2020

ProjectC

ASP.NET MVC • C# • JSON • jQuery
JSON data processing.
Test
2020

Vehicle Maintenance

ASP.NET MVC • VB.NET • JSON
Idea of the project: if someone wants to order a project development, here you can send an application.
Test
2019

Movie Navigator

ASP.NET MVC • VB.NET
Request information about movie from IMDB.
Test
2018

Customers Exchange

ASP.NET MVC • C# • SQL Server
Automated teller machine emulation.
Test
2016

ATM

ASP.NET MVC • C#
Automated teller machine emulation.

.NET Core

Pet project
2022

Mail Daemon

.NET 9 • Console • JSON
Utility to send mails with customizable settings.

Custom

Code
2024

Buns of code

.NET Framework • C# • JavaScript
Code snippets from my projects, ready to use; tiny tests; code examples.

PHP

Test
2024

Mediabox

PHP 8 • Laravel 11 • Vue.js • Composer • SQLite
Test project for media files management.
Test
2020

Loan Castle

PHP • MariaDB
Jums jāizstrādā kāda lielāk projekta prototips. Izstrādājot prototipu, paturiet prātā, ka projektam attīstoties, šo prototipu varētu vajadzēt pilnveidot.
Test
2020

Content Management

PHP • MySQL • AJAX
Создать простой сайт, где будет страница с формой для авторизации и страница для авторизованного пользователя.
Test
2019

Laravel

PHP • Laravel • Vue.js • Composer • SQLite
Izveidot aplikāciju, kura ik pēc noteikta intervāla (60 sekundes) veic ierakstu datubāzē izmantojot Laravel freimworka iebūvēto funkcionalitāti.
Test
2019

Phone Check

PHP • JavaScript • JSON • Docker
Implement application to detect country by phone number.

Frontend

Test
2021

Forex Wall

npm • React
For this exercise, what we need is a simple live wall for tracking currencies.

Business projects

Commercial
2008

Certification Center

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • SQL Server • ADO.NET • Dapper • JavaScript • jQuery • Git
Transport registration and certification services in Latvia, Customer Relationship Management.
Commercial
2000

Amerikas Auto

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • SQL Server • ADO.NET • Entity Framework • JavaScript • jQuery • Git
Car service and spare parts for all USA and European car models, Customer Relationship Management.

Pet projects

Pet project
2023

Geolocation Assistant

.NET 8 • ASP.NET Core • C# • Web API • JSON • Git
Website for determining geolocation by IP or geotagged photo.
Pet project
2008

Web Dynamics

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • Web API • JSON • SQL Server • Dapper • JavaScript • jQuery • SVG • Git
Software development blog. Articles, books, videos, content management.
Pet project
2000

Blackball

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • Web API • JSON • XML • SQL Server • Dapper • JavaScript • jQuery • SVG • Git
My entertainment portal created from scratch.

Good old times

Legacy
2000

DOS Clock

Turbo Pascal • Assembler
Digital clock.
Legacy
2000

BrainOut

Turbo Pascal • Assembler
Tank battle game.
Legacy
1999

Airport Administrator

Turbo Pascal
Курсовая работа в институте.
Legacy
1998

Atomizer

Turbo Pascal • Assembler
Atomizer, aka «Studio2D». Graphic raster editor. AGI is my own «Atomizer Generated Image» file format.

BrainOut

2000 Legacy

Tank battle game.

Turbo Pascal Assembler
Information
Source code
Root / ATOMIZER.PAS
{$A+,B+,D+,E-,F-,G+,I+,L+,N+,O-,P-,Q-,R-,S+,T-,V+,X+,Y+} {$M 16384, 0, 300000} Program Graphics_Editor; Uses crt, graph, dos, globals, general, mouse, service, buttons, menus; Function GetHighestCap( Table : Pointer; Modes : Word; Size : Integer ) : Integer; near; assembler; asm XOR AX,AX LES DI, Table @@1: MOV SI, Modes ADD SI, Size ADD SI, Size MOV BX, ES:[DI] CMP BX, 0FFFFH JE @@4 INC DI INC DI MOV CX,Size @@2: CMP BX,[SI] JZ @@3 DEC SI DEC SI LOOP @@2 @@3: CMP AX,CX JA @@1 MOV AX,CX JMP @@1 @@4: end; function DetectVesa16 : Integer; far; assembler; var VesaInfo : array [ 0..255 ] of Byte; asm MOV AX, SS MOV ES, AX LEA DI, VesaInfo MOV AX, 4F00H INT 10H CMP AX, 004FH MOV AX, grError JNZ @@Exit CMP ES : [ DI ].VgaInfoBlock.VESASignature.Word[0], 'EV' JNZ @@Exit CMP ES : [ DI ].VgaInfoBlock.VESASignature.Word[2], 'AS' JNZ @@Exit LES DI, ES : [ DI ].VgaInfoBlock.VideoModePtr PUSH ES PUSH DI MOV AX, OFFSET Vesa16Modes PUSH AX MOV AX, 3 PUSH AX CALL GetHighestCap @@Exit: end; Procedure SVGAinitialize; Var PathToDriver : String; {Stores the DOS path to *.BGI & *.CHR} begin PathToDriver := ''; VESA16 := InstallUserDriver( 'VESA', @DetectVesa16 ); GD := IBM8514; GM := IBM8514Hi; GD := Detect; {Use autodetection} InitGraph( GD, GM, PathToDriver ); end; {SVGA initialize } {- Main ---------------------------------------------------------------------} Begin SVGAinitialize; { *** Init video *** } SetGraphMode( 3 );{ *** Set graphics mode by 800x600 pixels, 8 bit color *** } VERSION_NUMBER := 1; iSizeX := 7; iSizeY := 11; ImagesByX := {512 div iSizeX}10; ImagesByY := {256 div iSizeY}10; Color.Foreground := 15; Color.Background := 0; Trigger.Grid := False; Grid.GridColor := 31; NewProjectFlag := True; { Get dinamic memory for operations } for AxisY := 0 to ImagesByY do for AxisX := 0 to ImagesByX do New( Image[ AxisX, AxisY ].Data ); New( MainPalette ); New( Clipboard ); if MouseInit( MouseFlag) then { Verify mouse } begin MouseSetXRange( 0, 799 ); MouseSetYRange( 0, 599 ); MouseSetPos( 400, 300 ); InitMouseCursor( 'arrow.crf' ); { Read mouse cursor from file } MouseShow; DrawDesktop; { Draw desktop } end; repeat Old_m_X_coord := m_X_coord; Old_m_Y_coord := m_Y_coord; MouseRead( m_X_coord, m_Y_coord, m_BUTTON ); { Show current image element } if MouseMove then if (( m_X_coord > 9 ) and ( m_X_coord< 9 + iSizeX * iBit.BitSize )) and (( m_Y_coord > 57 ) and (m_Y_coord< 57 + iSizeY * iBit.BitSize )) and Image[ SelectImX,SelectImY ].Flag then ShowCurrentImageBit else BarDeluxe( 222, 35, 38, 6, 1, COLOR_2 ); {----------------------------------------------------------------------------} { *** LEFT MOUSE BUTTON *** } if m_BUTTON = 1 then begin { Edit current image } if (( m_X_coord > 10 ) and ( m_X_coord < 10 + iSizeX * iBit.BitSize )) and (( m_Y_coord > 58 ) and ( m_Y_coord < 58 + iSizeY * iBit.BitSize )) and Image[ SelectImX, SelectImY ].Flag then EditImage( Color.Foreground ); if not disableLMB then begin disableLMB:=True; if (( m_X_coord > 276 ) and ( m_X_coord < 768 )) and (( m_Y_coord > 58 ) and ( m_Y_coord < 326 + iSizeY * iBit.BitSize )) then LMBOpsWithImages; { Get color from main palette } if MouseAction( 10, 324, 230, 544 ) then Color.Foreground := GetMainColor; end; end else disableLMB:=False; {----------------------------------------------------------------------------} { *** RIGHT MOUSE BUTTON *** } if m_BUTTON = 2 then begin if (( m_X_coord > 276 ) and ( m_X_coord < 276 + ImagesByX * iSizeX )) and (( m_Y_coord > 58 ) and ( m_Y_coord < 58 + ImagesByY * iSizeY )) then RMBOpsWithImages; { Edit current image } if (( m_X_coord > 10 ) and ( m_X_coord < 10 + iSizeX * iBit.BitSize )) and (( m_Y_coord > 58 ) and ( m_Y_coord < 58 + iSizeY * iBit.BitSize )) and Image[ SelectImX, SelectImY ].Flag then EditImage( Color.Background ); if not DisableRMB then begin disableRMB := True; { Get color from main palette } if MouseAction( 10, 324, 230, 544 ) then Color.Background := GetMainColor; end; { Disable RMB after click } end else disableRMB:=False; { Draw mouse cursor } if ( m_X_coord <> Old_m_X_coord ) or ( m_Y_coord <> Old_m_Y_coord ) then begin mousedraw; bardeluxe( 400, 500, 50, 20, 1, 25 ); outtextxy( 405, 505, Inttostr( m_X_coord ) ); outtextxy( 430, 505, Inttostr( m_Y_coord ) ); end; { Keyboard control } if KeyPressed then begin Key := ReadKey; if Key = #27 then begin for AxisY := 0 to ImagesByY do for AxisX := 0 to ImagesByX do Dispose( Image[ AxisX, AxisY ].Data ); Dispose( MainPalette ); Dispose( Clipboard ); closegraph; exit; end; if Key = #0 then begin Key := ReadKey; case Key of F1 : exit; F2 : SaveImage; F3 : LoadImage; end; { of case } end; end; until False; End.{ Written by Sergeant Skeleton at 26.03.99 }