HNHacker News
TopNewBestAskShowJobs

mickduprez

68 karma · joined March 15, 2016

Software developer from NSW Australia. Specialising in CAD automation, Go for web dev work and dabble in most languages as required. Interpreters/compilers are a favourite study topic with Forth, Lisp and Smalltalk my favourite languages to learn from.
submissionscomments
mickduprez··on A bestiary of single-file implementations of programming languages
Forth is a great language, simple syntax, (relatively) simple to implement, has a repl, easily extendable and fast. Chuck Moore was/is really onto something.
mickduprez··on XML is almost always misused
XML is/can be much more than a markup language and yes, it can be used very badly but this is usually by inexperienced 'data wranglers' who don't understand the difference between data attributes and data proper.

While XML can seem cumbersome (compared to JSON say) it is a very good 'data transport' tool when used correctly with a sensible schema (XSD).

For example, we use XML as a 'vendor neutral' data format to export/import CAD geometry and associated data for town utilities such as buildings, pipes, roads etc. All this data has to be validated against the schema to ensure its correctness. Using a schema like this enables the city council to import this XML into the GIS system to be used for asset management, financial planning etc.

A good schema can be key to sharing XML effectively between departments/applications and being a markup language this data can also be viewed independently using XLST.

mickduprez··on How to deal with boss fondling his phone while “sorry, I am listening” to you?
Stop talking and wait for them to look at you as to say "why did you stop". Then respectfully say "I see that you must be busy, if you like we can do this another time".

The trick is not to come across as condescending and that what you have to say is more important to them than what they are doing on their phone.

mickduprez··on Show HN: Memeforth – a “Forth” based on text manipulation and text-based memes
I think the problem is a css issue, I can't see the 2 buttons at the bottom :)
mickduprez··on Show HN: Memeforth – a “Forth” based on text manipulation and text-based memes
Love the look and setup, just can't get it to work though by just entering plain forth such as 3 4 + .

I get no result. Any trick to get this to work (using Chrome)

mickduprez··on Why Ada Is the Language You Want to Be Programming Your Systems With
What about Forth?

I quite like the way it eschews too much abstraction and can go from very low level to high level with a lot less code (and less bugs).

Given the current interest with IoT and the proliferation of cheap micro controllers it might be due for a resurgence(?).

mickduprez··on How to Start Learning Computer Graphics Programming
There are so many comments here missing the point saying "why? just use "X" API" or "this is a waste of time when you will need 'X' API anyway" etc. but they miss the point. It's about 'how' graphics work, not building game engines.

Computer graphics is more about producing an image on a computer screen and whether it's for image processing or a game engine renderer it's the same process and very useful to know whichever field you want to pursue.

mickduprez··on How to Start Learning Computer Graphics Programming
Some people think better at a lower level and some think better with abstractions. I for one feel more 'at home' at the lower level but can live with higher level abstractions if I know how it's done at a lower level :)
mickduprez··on How to Start Learning Computer Graphics Programming
Thanks for the extra links, I'm building a base software rendering engine in Go just for this purpose. It still needs work to get to a good 'base' but it can be used as is to start learning CG from your notes and links. https://github.com/MickDuprez/go-window cheers.
mickduprez··on Golang – bare bones pixel graphics window
OP here, this is my naive attempt at using Go to create a basic GUI window to render basic graphics to. I couldn't find anything like this for Go in my searches so I thought I'd have a go at it myself. I welcome any suggestions and comments on better ways to do this and improve the code base, thanks.
mickduprez··on Ask HN: Simple books and resources would you suggest on investing money?
The Richest Man in Babylon - George S. Clason. A good primer/philosophy for all ages on making and keeping money/wealth.

For stock investing (long term): The Intelligent Investor - Benjamin Graham (Warren Buffets mentor!) or anything on 'Value Investing' such as https://www.investopedia.com/investing/warren-buffetts-inves...

For property investment I recommend these: https://www.somersoft.com.au/books.htm

Some of the tax and law details are particular to Australia but the overall strategy would apply anywhere with a few adjustments and calculations.

I just wish I had read these a lot earlier in life BEFORE I went into business for myself! :)

Best of luck!

mickduprez··on Ask HN: Task list/to-do tools like Trello, but with checkboxes?
why don't you create a '<Project-Name> Done' list and move the card/s to there? Once the project is finished you can archive the list.
mickduprez··on The future of AutoCAD
Bricscad has everything AutoCAD has and more such as mechanical design (Inventor like) and sheetmetal and full BIM for things like Architecture and all are still just .dwg!

I have been developing on Bricscad for years and it is far faster with a much less buggy API as well. Bootup times smash AutoCADs :)

mickduprez··on Ask HN: NetRegistry – smells like extortion to me
Thanks for the comments, I'm not normally one to have a rant but this one ticked me off and I reacted. I'm still annoyed/baffled that they don't include this feature as standard practice, I mean really, how hard could it be to 'hide' this information (does it really cost a $1 a month to set a flag automatically (that can really be set just once)?)

It's a blatant grab for money and regardless of the organisation, it's disappointing and doesn't speak well for their business culture from my perspective (and I'll leave it at that :) ). thanks

mickduprez··on Ask HN: NetRegistry – smells like extortion to me
Yeah, I have no doubt NetRegistry aren't doing it directly. I've never had this happen with other registrations and I thought NetRegistry was a good company that was aware of this, I mean why couldn't they include this in the price? I would have paid even if it was $1 dearer. Anyway, I take your point about their marketing, thay could do a lot better though, thanks for your level headed response :)
mickduprez··on Google IT Support Professional Certificate
I signed up for this course even though after a brief look it looks like more of an entry-level course than a full-blown IT specialist course (which is understanding considering the course delivery being web-based).

I've been writing code for over 15 years and have seen more than enough opportunity to expand my business into the IT side of things, a lot more than contract coding anyway. I've let these opportunities go by as I don't have any real qualifications although I reckon I could cobble enough together with my experience to get by.

That being said, if I get a cert' from this it might be the confidence to push my business further if nothing else.

mickduprez··on Ask HN: What is your software specialization and what's interesting about it?
I've written an app that uses an XML schema to record local authority assets such as roads, sewer and water, parks and cadastre et al as a plug in to a CAD application. What is special about it is that it uses a vendor neutral file format to record important assets that can be imported into a GIS system for use in budgeting, maintenance, planning, asset depreciation etc. All data is validated by the schema so all stakeholders can be sure that the data passed around is usable and correct.

What's really opened my eyes is that the state of BIM (building information modelling) is way out of touch with what is actually required to create re-usable data.

XML, love it or hate it, is a simple text format and used with an XSD (XML schema definition) is a very powerful way to enforce data standards, sort of like type checking for a text file.

Having said all that I think if you can develop apps that use something like XML, JSON, whatever as a data source and it's used along with a good schema there is plenty of opportunities for work. Not everything needs to be stored in a database :)

mickduprez··on Plant-based “meat” is so tasty that Europe’s meat industry has to bite back
care to back that up with some facts? Off the top of my memory a beef cow requires at least 2 acres of land and an average of about 60 litres of water a day. Granted plants require more water per acre but 2 acres grows a lot more food per acre than any cow.

looking at your post in another way, the reason more land is used for plants is because of feed for the cattle such as soy and corn, not for human consumption.

mickduprez··on Slaughterbots: Stop Autonomous Weapons [video]
personal EMP??
mickduprez··on Ask HN: How do I know my software is working for my clients?
I'm in the same predicament as you it seems :)

I once built a logging system into the app that the user could turn on/off if they were having issues and it would at least record what they were doing at the time and they could send it to me for review. It captured usage and exception info so I could narrow it down pretty quickly but getting them to use it was impossible unless they called and I asked them to do it. I'm not sure I'd like to be bombarded with user data from all my users though.

I now think a better system would be to build in a bug/feature reporting tool and put it front and centre on the menu or toolbar etc to encourage them to use it. Create the form with as many default values for fields as you can to make the report as specific as possible with just one area to describe the bug.

There's not much you can do about updates/patches, I just issue an email and flag them as normal or very important which at least gives the user a choice of when to install them.

For new features, I'm working on building in an interpreter for Clojure (I'm using C# as the main app language but using say Lua or building a simple Lisp interpreter isn't too hard). I want these new features to be 'plug-ins' rather than issue new releases all the time. It will also give the end user a chance to automate what they need specifically if they are inclined and able, saves me some work for little reward :) It also keeps the main 'engine' code smaller and maintainable, once you have the engine a majority of features are just automation anyway.

mickduprez··on Ask HN: A good “group management” tool?
Trello is worth a look. You can create a list of tasks and set up a Kanban board for your task items that can have attachments, checklists and notifications.
mickduprez··on Clojure CLR from Scratch – Part 1.5 (simple build automation)
So far I think I've learned more about Java than Clojure CLR I think :) Once you get past the setup/build stage and understand how it works, working with .net libraries is pretty straight forward. There's a few tricks with loading assemblies and working with namespaces that I need to understand better and will be the focus of future posts.

We definitely need more documented examples of how to get going on the CLR and I think this is holding Clojure on the CLR back quite a bit. Hopefully, my posts will help get the ball rolling. Thanks for taking a look!

mickduprez··on Ask HN: How do you stay focused?
- The first thing you need to do is prioritise what you want to do. Remove trivial ideas or ideas with the least ROI for your efforts. If you can't remove items, create a second 'backlog' list and keep your main list as small as possible, maybe 2 or three projects you can get done in the time you have (think Agile).

This is the hardest I find as there are so many things I want to get done NOW and even when I do concentrate on one project I'm easily distracted by new "shiny objects" while researching the current task :) When I do get distracted, I write down the idea and I look to the next point:

- Do everything for the long term and remember that you have plenty of time to do it, be disciplined, there really is no rush.

So, take your time with what you are doing, do everything properly and remember why you are doing it in the first place - you decided it was worthwhile! You can't rush it just because you have other ideas, there really is plenty of time to do it properly AND to do the next idea on your list.

- Set aside chunks of time to work on your project and time to surf the web and check emails etc. Don't mix the 2!

This one is hard as you almost always need to search for some documentation on the web at some stage but be diligent knowing you have set aside time to do your leisure activities. If you think of some idea in these spare blocks of time just add the idea to the backlog and prioritise it when you renew your main list. If you're getting itchy feet about your new idea then you can prioritise your backlog but don't touch your current task list!

Lastly, if you can't maintain the effort to stick to a project after a week or two, make sure you break down your project into manageable chunks that you can call 'done' when finished. Do these parts as modules perhaps, again, think Agile programming and call these chunks 'sprints' if you like but make sure you finish and test your 'chunk' before starting the next task or project. Doing this will allow you to move from project to project and know where you are up to and if you followed the advice above you can be confident the earlier work you did is top notch and ready to build upon :)

good luck!

mickduprez··on Ask HN: How do you dive into a new framework/project?
Personally, I'd stick with the vanilla js and perhaps use jquery as it solves a lot of headaches with different browsers.

You can waste a lot of time just learning frameworks that can be here one year and gone the next and you may only use 20% of what they offer. You will learn more from building apps yourself and with more experience, you will start building your own js library for common tasks. Build libraries, not frameworks :)

Get used to building your own framework from your libraries each project as each project is different. You will get good at it as it is like doing a 'kata' every job and your native js skills will become very good, good to the point that when you have to work on a project using a framework you should have enough base experience to work it out.

Also, look into Modules, they are great building blocks for library code. cheers.

← PreviousPage 2 of 2