|
Adding the cited package doesn't let you cherry pick what gets included in the compiled image. The solution (for my situation) was to uninstall that package, and all System.Drawing.Common to the project.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
How often is it that we run into a situation where we have a lot of backend or supporting code to write, and the client can see no progress?
I try to code around that, and break up those tasks so I can continue to show visible progress, probably drilled into me from the dotcom days always having to keep the venture capitalists happy with what we were creating.
But sometimes it's just not possible, especially when you're in a situation coding as a one person team developing way above your individual weight class, so to speak. Add that to developing two things that have to talk to each other wirelessly in the same language, on entirely different platforms.
Hence the title of this post, with apologies to Douglas Adams.
It can be a difficult situation, helping a client manage expectations. It really helps if you've shown a lot of progress early on and built some trust in the direction of the project with the client, but at the end of the day, it's ultimately about trust and client education, I've found. The more they know about the process of developing a product, the more likely they are to accept periods of it going "dark" in terms of visible advancement.
Still I prefer to keep these periods as short as possible and as rare as possible, because otherwise I myself get uncomfortable with the project. Spending too long in the weeds can make me lose sight of where I'm headed so as much as it's frustrating sometimes having to play show and tell every week it at least keeps me grounded.
Real programmers use butterflies
modified 17-Feb-21 17:58pm.
|
|
|
|
|
honey the codewitch wrote: It can be a difficult situation, helping a client manage expectations. No, it ain't. It need to be done.
You don't ask a doctor to manage expectations. He/she tells you how it is and you learn to cope.
honey the codewitch wrote: It can be a difficult situation, helping a client manage expectations. It really helps if you've shown a lot of progress early on and built some trust in the direction of the project with the client, but at the end of the day, it's ultimately about trust and client education, I've found. "We did the heart, now working on an unpredictable liver".
What progress I make is not part of a progress bar. Sometimes it very quick, some days me very slow. Like a Windows progressbar!
honey the codewitch wrote: show and tell every week it at least keeps me grounded. Ehr, once a week? We do daily. And some days, nothing changes really, you just throw away a lot of code.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
I find it useful to use anything from a simple todo list in notepad to a ticketing system (pick your poison) where I break down all the back-end pieces that need to be implemented, individually tested, and then integration tested, for that one simple "see, clicking on the button works!" 30 second demo.
That way I can keep my own focus, add things as I realize "oh yeah, that needs to be done too" and "oh yeah, that scenario / edge case needs to be tested as well", and, assuming whatever you're using to mark each step along the way as "done", the client can see the progress you're making.
And of course, there's the brain chemistry[^] associated with motivation to work on a task and then marking it as done!
|
|
|
|
|
I lose notes, or can't interpret them later, so I use // TODO: statements in my code. Visual Studio produces a task list out of them. The other advantage is I (usually) know right where my TODO needs to happen.
Real programmers use butterflies
|
|
|
|
|
I run into that - a lot. I do the UI's for our products. The main product line uses C# and WPF. I've found it's easier to prototype directly in the product and demonstrate how it works than to draw a bunch of static pictures.
Fortunately the 'client' is the rest of the R&D team on the product, along with service, sales, and occasionally training. All of them understand that the pretty face is about 0.1% of the solution.
Software Zen: delete this;
|
|
|
|
|
I do similar except i mock using winforms for gui stuff because i hate the wpf designers, and i prefer designers for RAD UI development where possible. In fact winforms is great for me the way i code because it generates code and can roundtrip from the designer so i get both methods. WPF you can do it too, but the tags are annoying, and that's what the designer generates. Plus the designer itself is near impossible to use IMO.
So i dev in winforms for the mock, separating most of the actual logic, and them port it into WPF for the final product, which can then be tweaked but all the major elements and overall flow is there.
Real programmers use butterflies
|
|
|
|
|
I don't use the WPF designers myself. It's far simpler to hand-code the XAML .
Don't even get me started on the abomination that is Expression Blend. I've never been able to use it, given its gray-on-gray user interface.
Software Zen: delete this;
|
|
|
|
|
It happens to me every day and is happening right now.
And don't talk about managing client expectations, they want it and they want it NOW!
Then they can complain/change their mind when they see it.
Life is hard. Programming is harder. Wear your mask.
|
|
|
|
|
My kids' school (Yes, I am the computer guy of the school as a part-time job hobbyist ) has a mobile cart with 16 strictly identical hp laptops, that is used by the teachers in their classrooms. The lappies are connected to two wireless access points (1 access point for 8 laptops) placed inside of the cart, which is itself connected to the school network via cable. The school has a server and its own domain.
Problem: At most, 6 to 8 laptops can connect at the same time without interruption or loss of the wireless connection, for surfing the internet or opening word documents from the server). When more laptops are used, navigation on the network (files or internet) gets really slow or even freezes.
I lack experience in mass wireless technology, so maybe you guys can help; What I tried so far :
- putting all 16 laptops to the network via a switch and cables instead of wireless, I get an average of 50Mbit/s on each, everything runs fine, so I suppose everything is ok from the server point of view.
- access points are 300Mbit/s capable, which means a theoretical 150Mbit/s (wireless is not synchronously bidirectional) for 8 laptops, or about 20MBit/s for each of them, in an ideal world. But I get between 20Kbit/s and 4Mbit/s at the very best. The wifi network card of the laptop is 2.4GHz.
- I separated the channels (used chan 1 and chan 6 respectively on the access points), no improvement
- I used 5GHz access points with 5GHz wifi usb dongles instead of the 2.4GHz ones, with almost no improvement.
Am I hitting a physical limitation of the Wifi bandwidth when trying to use 8 machines on a single access point ? Is there any different type of access points that are designed to handle more connection or with increased bandwidth ?
Any idea of what else could go wrong ?
|
|
|
|
|
- Are the access points in a metal cabinet? Is the cabinet closed while the computers are in use?
It could be that you are not actually connecting to the APs in the cabinet, but to different APs much further away. - [EDIT] Check the channel width on the access points (using the web interface). It should be 20MHz, not 40MHz.
A channel is 5MHz wide, but 20MHz are required for Wi-Fi. This means that a 20MHz channel covers a width of 5 channels, i.e. "channel 6" at 20MHz actually uses channels 4 to 8, and "channel 1" at 20 MHz actually uses channels -1 to 3.
If you try using a 40MHz channel, you have "channel 6" actually using channels 2 to 10, and "channel 1" using channels -3 to 5, overlapping the channels used by "channel 6". - Connect one laptop to each access point (on different channels - 1 & 6), test the throughput - upload only, download only. You should see a high throughput on both laptops.
- Get a Wi-Fi network sniffer (there are freeware programs that you can install on your phone), and see if there are other networks using the same channels. For example, the school may have a Wi-Fi network for the teachers, for administrative stuff, etc.
The issue may be the number of transmission collisions. When there is a collision (two devices attempting to transmit at the same time), the devices retry after waiting a while. The more devices you have on the network, the more collisions are likely. If each device is attempting to transmit at the maximum rate (150 Mb/sec), you are attempting to send 1350 Mb/sec (don't forget the Access Point). Collisions are guaranteed under this case, with the associated retries.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
modified 17-Feb-21 17:12pm.
|
|
|
|
|
Daniel Pfeffer wrote: Get a Wi-Fi network sniffer
Good idea - I use https://play.google.com/store/apps/details?id=com.vrem.wifianalyzer[^] which is brilliant for a free app - open source as well.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
Thanks for the suggestions and the time you took to answer .Daniel Pfeffer wrote: Is the cabinet closed while the computers are in use?
Only wood. I took the APs out and put them in separate corners of the room without any improvement.
Daniel Pfeffer wrote: Check the channel width on the access points
I tested all possible configurations : overlapping chans, no overlapping chans, 20MHz, 40Mhz. Best results with chan 1 and chan 6 or 11, 20MHz, but still not sufficient.
Daniel Pfeffer wrote: You should see a high throughput on both laptops
With 2 laptops, 2 access points, I have up to 6Mo/s (tried 2 different access points of different brands that are respectively 300Mb/s and 500Mb/s capable), all good. It starts to go down when I have more than 3 laptops on one AP. Two bizarre things here : why only 6Mo/s where it should be at least 20, and why the breakdown when 4+ are connected...
Daniel Pfeffer wrote: Get a Wi-Fi network sniffer
Done as well, and most other chans are indeed used by the school neighbourhood, but with very, very little signal strength, so they are barely visible.
Daniel Pfeffer wrote: The issue may be the number of transmission collisions
Interesting. How can I avoid this ? Could load balance of limitations per device help ?
|
|
|
|
|
Rage wrote: Daniel Pfeffer wrote: The issue may be the number of transmission collisions
Interesting. How can I avoid this ? Could load balance of limitations per device help ?
If you can't switch to 5ghz (lots more channels available); about all you can do is see if you can reduce transmit power on the access points and clients.
Wifi devices can only transmit 1 at a time on a channel [*]; meaning that counter-intuitively increasing transmit power in a crowded environment only makes things worse (you're seeing more devices transmit, so each devices share of the transmit time goes down).
[*] not strictly true in the latest versions of the wifi standard if every device in range is using it; in maybe 10 years that's the case this might actually be relevant. (But probably not because someone will have a cheap #InternetOfShit device on the network that saved $0.01 by using a 20 year old wifi module.)
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
Thanks.
The more I look at it, the more I think this setup with 16 pcs on wireless cannot work properly.
|
|
|
|
|
You need better than cheapo wifi-N 2.4ghz anyway.
I hope the laptops are capable of doing better and it's just the access point that's an obsolete paperweight.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
There are now 4 access points, 2 of them are 5GHz capable, and new. I am not sure about what features make an AP better than another one.
The hp laptops are only 2.4GHz capable, but I tried with 5GHz wifi usb dongles, to no improvement (in a setup with 1 5GHz AP and 4 laptops, the fourth laptop browser froze while they were trying to access the internet at the same time).
|
|
|
|
|
|
That is what I had in mind as next step, but I was not sure if physically the Wifi at 2.4Ghz really can handle more than 8 clients - It is worth a try though, thanks.
|
|
|
|
|
It's probably a built in limitation in the access point.
Both at home and at work I have Unifi access points, they have a limit of 127 clients per radio (so 254 in total), that should be enough.
|
|
|
|
|
The current APs are also 254 clients capable, but this apparently does not mean that they guarantee bandwidth.
A 300Mbit/s device = 37Mo/s one direction = 18Mo/s both directions, so 254 devices would get with 100% efficiency about 70ko/s each, which is ... quite slow.
But 18Mo/s for 8 clients is still about 2Mo/s/client, which should be sufficient for accessing a file or even watching SD videos from the internet, so I do not understand why I run into problems.
|
|
|
|
|
Bandwidth balancing certainly isn't built in to all access points.
This is a problem when using the hub model, clients are greedy, so when they receive a package they immediately send the next request allowing no room for other clients to use the bandwidth.
So if your AP doesn't have bandwidth balancing, it's the first to come that wins, the rest gets a timeout after some retries.
There are three solutions that I can see.
A) Get an AP with bandwidth balancing
II) Change the settings for TCP retries and/or timeout.
3) Block YouTube in the DNS.
|
|
|
|
|
Thanks, Jörgen, I'l ltry this . Two of the four available APs can be configured.Jörgen Andersson wrote: lock YouTube in the DNS.
|
|
|
|
|
|