|
Marc Clifton wrote: What's particularly disappointing is that code seems well written and documented, I would have expected better from the people that wrote this, given the quality of their stuff.
I actually see myself writing this code a few years back. The thing is, I knew a lot, read a lot of books "BUT", have always worked on small projects, never on frameworks or libraries. I even got an MCC Award from Microsoft for my contributions to C# and Windows Forms.
But I had never actually really understood or worked with the SOLID principles before. I hadn't read the GoF book or any other architectural design books, which were my main source of knowledge back then.
I took me a while, to actually work on projects that implemented more sophisticated design patterns. But I still wrote a lot of very good code, using all advanced knowledge I had acquired about language and frameworks. I even wrote good code for embedded devices.
What I believe contributed for my lack of knowledge on design patterns:
- The companies I worked for never really understood the concept so they could spread it.
- Lack of initiative to work and contribute to important open source projects.
- Bad luck. I read a lot of books, should have gotten to a SOLID book.
- Lack of engagement on coding communities in general, like participating of webinars, conferences, etc. My environment was never tech friendly, Brazil is a little late when it comes to tech.
- Ignorance in general, when you don't know that you're missing something, it's hard to realize it.
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson
Our heads are round so our thoughts can change direction - Francis Picabia
|
|
|
|
|
Marc Clifton wrote: who the heck uses log4net anymore???
What is your preferred logger these days then? It's probably been a decade since I've looked, and log4net filled 100% of my needs at the time and since (an idiot friendly way to barf into a textfile).
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
|
|
|
|
|
Dan Neely wrote: What is your preferred logger these days then?
Granted, log4net is very cool, and one could probably write a plugin (if it doesn't already exist) to log to PapertrailApp. I use that as my primary logging tool (nothing sensitive/secure is being sent to it of course) and the site's filtering features.
That said, since I have the luxury of using my own code base for several projects, which utilizes a pub/sub architecture for messaging between objects, all messages can be logged, exceptions (as a final fallback) are handled by the pub/sub and logged, and I frequently log what Linq2SQL emits (again sanitized.)
The logger is a service, I can replace it with a console logger or whatever (including emailing me exceptions only) so it's a pretty flexible setup.
Marc
|
|
|
|
|
Papertrail looks interesting.
Although "simple setup" linking to a screenshot of documentation that I couldn't find in 5 minutes of poking around on their site has burned most of my opening enthusiasm.
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
|
|
|
|
|
Dan Neely wrote: has burned most of my opening enthusiasm.
There's also some better ones out there now - better in that they look like they have more advanced filter/search features. Google "papertrail vs" and let it autocomplete.
And if it helps, my article on PapertrailApp.
Marc
|
|
|
|
|
Thanks for the pointer.
Something I'll keep in mind if/when I start another greenfield project.
While the concern about off premise data's real; but my employer mostly does solutions using Azure or AWS depending on if the customer wants the ASP.net or a Penguin Stack for their backend; so that ship's largely sailed for most of what I do.
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
|
|
|
|
|
PapertrailApp might work great but that assumes an extraordinarily large amount of things that are, in my opinion, not true for most organizations. The biggest assumption is that the organization wants any of their information, logs or not, going to the cloud. There is a lot of data that should never leave a DMZ. The second is that there is a case for aggregating all of that data together. Depending on the organizations needs, much of what PapertrailApp will do is just straight overkill.
Loggers like log4net and nlog are simple, easy to configure loggers that make rapidly building an application with some tracking and logging quick and easy. I am not saying PapertrailApp wouldn't do the trick but don't hit a tiny nail with a sledge hammer, it never ends well.
|
|
|
|
|
nightsoul94 wrote: but don't hit a tiny nail with a sledge hammer
Wiser words never spoken.
In my scenarios, I was monitoring the "health state" of 100's of ATM's remotely, and when the central management tool flagged an ATM as being down, going through the logs on PaperTrail to see what errors occurred was immensely useful. In another scenario, again I'm remotely monitoring an installation at a club in Tijuana (I'm in New York) that is communicating to 60 or so BeagleBone single board computers, and being able to view the logs in realtime again has been really useful.
Granted, all those logs could be sent up to a central server on the cloud, or logged locally and I could connect remotely to the local server, etc., but this was a simpler solution.
Marc
|
|
|
|
|
Marc,
We are trying to get rid of 40 year old Cobol code...
So, while I feel your pain... I would LOVE .Net code using Log4Net()...
Especially when you see code that "recognizes" it's on a development box, and runs differently! LOL.
|
|
|
|
|
My take from open source is that beggar can't be choosy. I take it as was threw at me. If I don't like threw it away. Its free.
That said, I'm currently maintaining a project which was written by an idiot. Storing the DOM elements tree and the JavaScript code that handled the element in a self-reference tree in a single database table.
|
|
|
|
|
They built something for a project they were working and not for you. They were just nice and let you copy their homework.
Idaho Edokpayi
|
|
|
|
|
What's wrong with using log4net?
|
|
|
|
|
E. Anderson wrote: What's wrong with using log4net?
Nothing really. I just use other tools nowadays. As mentioned earlier, PapertrailApp is something I often use for server applications that I want to monitor remotely. That however would not be appropriate for this project -- nobody wants their personal peer logging to some central site!
Marc
|
|
|
|
|
Why do people grab kind other peoples' code and complain it isn't coded like they would do it? It isn't enough that they put it out for the benefit of others?
So, can we expect that you submit your version to the authors? And write it well and document it well?
|
|
|
|
|
Charles Programmer wrote: Why do people grab kind other peoples' code and complain it isn't coded like they would do it? It isn't enough that they put it out for the benefit of others?
So, can we expect that you submit your version to the authors? And write it well and document it well?
I seem to have hit a nerve with some. As I replied elsewhere, I'll be posting a Code Project article on this once I've got it fully working, I understand all the code, and document my understanding. If you want watch my work-in-progress, the core of it is already a public repo on GitHub.
Once complete, I'll post a comment on the original site (I didn't fork the repo, because I'm only extracting a small piece) and of course mention the original code source on any article/documentation that I write.
Marc
|
|
|
|
|
Why do we put round pizza in a square box and eat it in triangles?
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
For the same reason we park on driveways and drive on parkways.
There are two kinds of people in the world: those who can extrapolate from incomplete data.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
And who needs a hot water heater? Why heat hot water?
/ravi
|
|
|
|
|
Ravi Bhavnani wrote: Why heat hot water? Simples. To make it hotter!
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
We don't. They are Circular sectors[^] not triangles.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I knew that, but triangles is easier for most people to see...
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
We're not "most people" - details are important to us, they are what we do!
My neighbour has decided I have "eyes like a sh*t-house rat", after he bought a new car and the first thing I noticed was a missing wheel nut - just by parking next to it...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I would consider that a primary feature of a good programmer.
(sorry)
I'm retired. There's a nap for that...
- Harvey
|
|
|
|
|
I would absolutely agree! A good programmer is all about patterns and details, little else matters. (I'm not talking about formal programming Patterns, such as "Singleton", "Factory" and so on - mostly those are just overused names to hide ignorance in idiots).
In this case, a glance at the car gave a "pattern error" and the detail was "missing wheelnut". For me, that's instinctive; monkey see somethign odd, monkey want to know what is wrong.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Hello all,
1. Acrobat reader DC.
2. Nitro PDF reader.
3. Foxit Reader.
4. Windows Reader.
5. SumatraPDF.
Which is your preferred one and why?
modified 8-Aug-17 12:09pm.
|
|
|
|