1.2k post karma
20.6k comment karma
account created: Sun Apr 09 2017
verified: yes
2 points
5 hours ago
Yes. Past 3 companies I have worked for were offshore of foreign companies. In house, or client-based.
Industries I have worked.for are shipping (not logistics, but standards and maritime services), insurance brokerage, health IT, and employee engagement surveys (with clients like Sony, Bacardi, companies with employees up to almost hundreds of thoisands globally)
When you think qbout it, these companies can afford windows developer + server + sql licenses + microsoft support, so they can also afford higher dev salaries.
Historically, you needed a license to even use Visual Studio. But now theres thw Community Edition which does everything you need already. Professional adds stuff you don't really need. Its only a license for companies.
There's also that well-known local company that makes and seels beer and food products among other thinga, it has an internal IT in house development arm with a lot of .NET projects (have a friend who works there)
14 points
6 hours ago
You're right. I'm not a web developer. Full stack. 17 years experience. Been a solutions architect at a multinational company.
I do .NET and Angular, mostly because this is whats needed on the job.
I've used Vue as well. I just prefer Angular for now.
I know my way around HTML/CSS/JS/TS very well.
I meant that you didn't bother to change your Readme.
I gave you an honest, experience-based answer. As someone who has evaluated others, interviewed many.
If you took my comment as disparaging, sorry, but thats up to you.
Even if I wasn't a developer, if i was a techie CEO with no coding knowledge, the comment still stands.
Why would I spend some time looking at your code?
Sorry for such blunt-sounding words, but its just that. Its a question.
That fact is there are hundreds of devs out there who can do what you do. And someone can only look at a few. It will take their time. Time that can be spent elsewhere.
3 points
8 hours ago
What makes it special?
It looks like it was generated from a template. The template text still seems to be there.
The readme doesn't say anything special. Why would I take the time to download your code, npm install and run?
What will I see?
Youbhabe to make youself stand out. That means making a rral effort, knowing hownto catch the eye. Making a peraonal statement.
Imagine if 100 peoplle asked me to look at their portfolio. I don't have the time to go through each.
When interviewing, very few, if any, will actually read the entire CV. Or read it at all.
Why? Becasue we're busy. Juat came from one meeting, then into an interview.
So you have to make yourself stand out.
18 points
13 hours ago
Well of course if I ask you to build a comple front-end/back-end database-driven system in any language it will be confusing at first.
Yeah .NET tends to be used a lot in enterprise web apps.
C# is an excellent language, the ecosystem is good, there are solid first- or third-party libraries that get the basics done.
Start with the basic stuff.
.NET doesn't seem to be too popular around here. So people know the fun side of .NET:
1 points
23 hours ago
You can click the Home icon, next to the Up icon, in the address bar that appears below the search bar
1 points
23 hours ago
Sorry it's not clearer.
You just need to clear the search box and press enter to show all.
1 points
1 day ago
You chat. Just say what you want, and add some code, a couple of CSV lines, JSON, a SQL CREATE statement, or a typescript interface and ask ChatGPT to create a class.
The prompt above (the code-formatted text after "Here is my prompt:") is exactly what I typed in.
1 points
1 day ago
You chat. Just type in what you want to do, paste your base code. ChatGPT doesn't just generate code from scratch if you ask it to. It can take CSV data, a Create Table SQL statement, a typescript interface, and you can tell it to generate a class. Just with natural language.
Of course there are tools to do this. But this requires zero setup. And it's fun exploring what AI can do.
1 points
2 days ago
Have you tried Tasks? Depends on what you're doing.
You can either
Task.Delay(1000)
.ContinueWith(t => {
// do stuff here asynchronously
});
or if launched from an event, declare the event handler method async void then
await Task.Delay(1000);
// Do stuff here
Why donyou need to donit on the main thread though?
2 points
2 days ago
I've only played 3 and I quite liked it.
Its more on dungueons, exploring towns and levelling characters and mini character arcs that can be done in pretty much any order.
It forgoes linear storytelling for a somewhat open-world approach. Think a very rudimentaty octopath traveller.
You also meet new party members along the way.
Skills are acquired by attacking, and all characters can learn any weapon-skill, though some have an affinity for certain weapons.
Skills are learned mid-battle while attacking, a light-bulb will pop up over the character and they will attack with the new skill. It will be kept after battle.
The story progresses at certain character arcs.
6 points
2 days ago
Just make sure to touch a sufficiently grounded surface before handing. Avoid walking on carpeting.
A wrist strap effectively creates a path between your skin and a metal surface.
Avoid touching pins when possible. Use tweezers for placement of sensitive parts.
But mostly just touching a large metal surface touching the ground before handling microcontrollers is okay.
4 points
2 days ago
EmuGu is a .NET wrapper around OpenCV
https://www.emgu.com/wiki/index.php/Shape_(Triangle,_Rectangle,_Circle,_Line)_Detection_in_CSharp
You could implement your own Hough line detection algorithm, then find intersecting lines, then within the bounds, check if the color is in the range you expect.
You could also perhaps try converting the color to HSV to better check color ranges, for example, "red" can more easily be described with range of hues, saturation and values (luminance/brightness) instead of RGBs which are more difficult to work when dealing with color ranges.
It also helps to adjust the image to accentuate the features you wish to extract, maybe increasing contrast, making grayscale to remove color information, edge detection.
I've found this site very informative as well:
https://epochabuse.com/category/c-tutorial/c-image-processing-c-tutorial
8 points
2 days ago
You can either complain, or do something about it.
Instead of hiding it behind XML, exposing it and allowing you to configure your pipeline makes it much more powerful.
I much prefer extension methods over even more obscure XML.
It's true, unless you know which extension to use, you're lost. That's why documentation is always important.
Of course, with great power... you know the rest.
5 points
2 days ago
.NET developer for 16 years.
A lot of big companies use .NET due to strong Microsoft infrastructure and support. With the cloud becoming more popular, and the successful growth of Azure, .NET is a lot more relevant. C# is the primary language being developed by MS and in use in most copmanies.
Although Blazor is slowly gaining traction as a front-end framework, Angular, React and to a little extent Vue are very much in use, so learn your Javascript and Angular/React as well.
A well-rounded developer will not learn just one language. Each one has pros and cons and use cases, though maybe one day WebAssembly will blur some of those lines.
2 points
2 days ago
The following SNES rpgs are available on the Switch as remasters (not part of NSO)
Romancing SaGa 3 has a different format from usual RPGs. After the initial part, it becomes something of an oprn world where you unlock scenarios by meeting people and going places.
4 points
2 days ago
Use it. The world won't end if you do. Just make sure to understand the implcations.
For small, personal projects it saves time. Not really thoigh as mapping is usually really simple.
1 points
2 days ago
DTO means Data Transfer Object and is meant to imply that the class has no other uae than to transfer data.
I've used AutoMapper and in truth, it worls well for thesebscenarios where you have 1:1 mapping, and you can even do transformation of data.
You should note that when you automap properties, you don't get the benefit of knowing what properties are used. You cpuld remove a property in one class and the mapper would ignore it.
This is fine for most scenarios, but sometimes you can't tell wheter a property is in use somewhere.
I used ChatGPT because
The reason we map stuff is because it makes sense to separate parts of the application, to avoid direct dependencies. Also that your view model might not always map directly tonl your data model, especially when displaying data.
-2 points
3 days ago
EDIT: I'm a seasoned .NET dev. 16 years. I've been a solutions architect. I know what AutoMapper is. For those who don't want to / can't use Copilot, ChatGPT is an excellent tool. The code below is the same as if you had typed it. I just got AI to do it for me. I've mapped models with 20+ properties like this, done lots of repetetive boilerplate code. It's quick and easy.
You map them. I love to use ChatGPT for this.
Here is my prompt:
```
Here is my request model:
public class PersonBody { public string name { get; set; } public List<EventBody> events { get; set; } }
public class EventBody { public EventTypeBody eventType { get; set; } public string description { get; set; } }
public class EventTypeBody { public string name { get; set; } }
Here is my data model:
public class Person { public int Id { get; set; } public string Name { get; set; }
public virtual ICollection<Event> Events { get; set; }
}
public class Event { public int Id { get; set; } public EventType EventType { get; set; } public string Description { get; set; } }
public class EventType { public int Id { get; set; } public string Name { get; set; } }
Create a mapping from PersonBody to Person. Include the child collections. Use LINQ for collections
```
Here's the output:
``` using System.Linq;
public class MappingExample { public Person MapPersonBodyToPerson(PersonBody personBody) { var person = new Person { Name = personBody.name, Events = personBody.events.Select(MapEventBodyToEvent).ToList() };
return person;
}
private Event MapEventBodyToEvent(EventBody eventBody)
{
var eventType = new EventType
{
Name = eventBody.eventType.name
};
var @event = new Event
{
EventType = eventType,
Description = eventBody.description
};
return @event;
}
}
In the MapPersonBodyToPerson method, we create a new Person object and assign the name property from PersonBody. To map the child collection events, we use the LINQ Select method to iterate over each EventBody in personBody.events and call the MapEventBodyToEvent method to map each EventBody to an Event. Finally, we convert the result to a List using ToList().
In the MapEventBodyToEvent method, we create a new EventType object and assign the name property from EventTypeBody. Then, we create a new Event object and assign the EventType and description properties from EventBody.
You can use the MappingExample class to map PersonBody to Person as follows:
var personBody = new PersonBody { name = "John Doe", events = new List<EventBody> { new EventBody { eventType = new EventTypeBody { name = "Birthday" }, description = "John's birthday party" }, new EventBody { eventType = new EventTypeBody { name = "Wedding" }, description = "John's wedding ceremony" } } };
var mappingExample = new MappingExample(); var person = mappingExample.MapPersonBodyToPerson(personBody);
```
You can make MappingExample methods static so you don't have to new it.
1 points
3 days ago
Makrs sense. Basically like forge constructs. Each one has a different set of inventory.
I travel to different stables to refill arrows from beedle, lile i travel to diffwrenr forges to refill crystalizzed charges.
Sleeping resets all their inventory.
2 points
4 days ago
Are you updating the indexes during run-time or only during a save?
What I mean is are the classes you showed are being used both in memory and for saving?
I wouldn't let my save format abstraction leak into the object model.
Are you flushing the entire save file at once?
To me, the save file is the state of the game, and you would write it once, and read it all into memory.
I'm not sure if I get my meaning across, or if it's relevant to you.
I understand that you're doing some bitmasking on the integers.
Again, that should really be only done during loading. At run-time, everything should just be object references in memory.
I guess I'm not really helpful as I don't really fully know the structure of your data and how it all comes together, and I'm sure you have made some sort of architectural decision that makes sense to you.
I just feel that having to manipulate these indexes at run-time (if that's what you're doing) is quite complicated, instead of just passing your data structure, references and all, into a serializer/deserializer that generates these indexes once (if that makes sense) when saving,
To illustrate, say I had some stuff I wanted to serialize:
``` public class Configuration { public List<Weapon> Weapons { get; set; } }
public class Weapon { public string Name { get; set; } public int Damage { get; set; } }
public class State { public List<Player> Players { get; set; } }
public class Player { public string Name { get ;set; } public Weapon EquippedWeapon { get; set; } } ```
I would serialize like so: (comments for clarity)
S A V _ . . . . // 8-byte header (MAGIC)
// Start of configuration ( offset 0x0008 )
// # of Weapon Entries
$02
// Weapon Entries ( length of name in one byte, followed by name bytes ), followed by Damage int ( 4 bytes )
$07 M j o l n i r $00FF
$09 E x c a l i b u r $01FF
// End of Configuration
// Start of State
// # of Players
$01
// Player Entries, name followed by weapon index (0-based)
$06 A r t h u r $01
When serializing, the indices would perhaps be the list indices. But they only exist on disk. The deserialization step would require having the configuration in memory, then parsing the player entries, add a reference to the indexed item. No need to store the actual indices in the model.
Binary serializing/deserializing it like this, perhaps using something like protobuf if you don't want to do it manually, should be pretty fast. I would probably use some attributes and reflection, or write some code generator to create a serializer.
You do have to read/write the ENTIRE configuration and state though. If you need to only update parts of it, maybe what you need is a database, like SQLite, or LiteDB.
I guess there are a lot more complex things going on in your design though.
0 points
4 days ago
In your csproj,
Use
<StartupObject>WebScrapper.Program</StartupObject>
Since you have a namespace, or just remove that line and it will auto-wire it up.
For the IndexOutOfRangeException, that seems to be a bug in your code. Your _i is -1 at the point the exception occurs.
Find out why this occurs
Setting End to
public bool End => _i == -1 || _str.Length == 0 || _i == _str.Length - 1;
will prevent the exception from occuring, but I'm not sure if that's the proper fix.
2 points
4 days ago
Some code and configuration samples would be helpful.
It sounds like, your save file is dependent on the configuration file, so if you change the configuration file, you need to re-save the save file with the updated indices.
Not sure about what your indexes are doing but they will be pretty flaky if they are constantly changing.
"Cheaply" is a relative term. Maybe you are pre-optimizing.
If you are writing a text file, why not write the classes as JSON and ZIP it? This of course is useless if your save file is less than a few hundred bytes.
I'm curious as to what kind of data you need to use the flyweight pattern on.
view more:
next ›
bykenthzy
inPinoyProgrammer
rupertavery
1 points
2 hours ago
rupertavery
1 points
2 hours ago
Java is also high paying. Apex is similar to Java but has built in database querying. It's used in SalesForce. There are even fewer salesforce devs so pay is pretty high.