Émilie du Châtelet lived a wild, wild life. She was a brilliant polymath who made important contributions to the Enlightenment, including adding a mathematical statement of conservation of energy into her French translation of Newton’s Principia, debunking the phlogiston theory of fire, and suggesting that what we would call infrared light carried heat.
She had good company; she was Voltaire’s lover and companion for fifteen years, and she built a private research institution out of a château with him before falling in love with a younger poet. She was tutored in math by Maupertuis and corresponded with Bernoulli and Euler. She was an avid gambler and handy with a sword. She died early, at 41 years, but those years that she did live were pretty amazing. Continue reading “Émilie du Châtelet: An Energetic Life”→
Lathes are complicated machines, and buying one requires weighing a lot of options. We’ve already talked about buying new Asian, or old American machines (with apologies to the Germans, British, Swiss, and all the other fine 20th century machine tool making-countries). We also talked about bed length and swing, and you ain’t got nothin’ if you ain’t got that swing. Let’s talk about the feature set now. If you’re buying new, you’ll shop on these details. If you’re buying used, knowing the differences will help you pick a good project machine.
This article is about crypto. It’s in the title, and the first sentence, yet the topic still remains hidden.
At Hackaday, we are deeply concerned with language. Part of this is the fact that we are a purely text-based publication, yes, but a better reason is right there in the masthead. This is Hackaday, and for more than a decade, we have countered to the notion that ‘hackers’ are only bad actors. We have railed against co-opted language for our entire existence, and our more successful stories are entirely about the use and abuse of language.
Part of this is due to the nature of the Internet. Pedantry is an acceptable substitute for wisdom, it seems, and choosing the right word isn’t just a matter of semantics — it’s a compiler error. The wrong word shuts down all discussion. Use the phrase, ‘fused deposition modeling’ when describing a filament-based 3D printer, and some will inevitably reach for their pitchforks and torches; the correct phrase is, ‘fused filament fabrication’, the term preferred by the RepRap community because it is legally unencumbered by patents. That’s actually a neat tidbit, but the phrase describing a technology is covered by a trademark, and not by a patent.
The technical side of the Internet, or at least the subpopulation concerned about backdoors, 0-days, and commitments to hodl, is now at a semantic crossroads. ‘Crypto’ is starting to mean ‘cryptocurrency’. The netsec and technology-minded populations of the Internet are now deeply concerned over language. Cryptocurrency enthusiasts have usurped the word ‘crypto’, and the folks that were hacking around with DES thirty years ago aren’t happy. A DH key exchange has nothing to do with virtual cats bought with Etherium, and there’s no way anyone losing money to ICO scams could come up with an encryption protocol as elegant as ROT-13.
But language changes. Now, cryptographers are dealing with the same problem hackers had in the 90s, and this time there’s nothing as cool as rollerblading into the Gibson to fall back on. Does ‘crypto’ mean ‘cryptography’, or does ‘crypto’ mean cryptocurrency? If frequency of usage determines the correct definition, a quick perusal of the press releases in my email quickly reveals a winner. It’s cryptocurrency by a mile. However, cryptography has been around much, much longer than cryptocurrency. What’s the right definition of ‘crypto’? Does it mean cryptography, or does it mean cryptocurrency?
Last time in Life on Contract, I discussed ways to figure out a starting point on how much to charge for your services. However, sometimes you and a client may wish to work together but for some reason they cannot (or do not wish to) pay what you have decided to charge. If you are inexperienced, it can be tempting to assume you have overpriced yourself and discount down to what they are willing to pay. But if your price is a number you have chosen for reasons you can explain, dropping it is not something you should do unless you have thought about it carefully.
Instead of just agreeing to do the same work but for less money, it is often possible to offer a lower overall cost without cheapening the value of your work. I’ll share a process I use to find opportunities to make this happen.
It Should be Win-Win, Not Hard Sell
The best case scenario is a client wants your service, your cost is within their budget, and everyone agrees to work together. Tragically, the process isn’t always that smooth. If cost is an issue, the alternative to lowering your price is to fine-tune what you provide to better fit the actual needs. To do that, you will need two things:
A detailed understanding of your own time and costs for the work.
Knowledge of what things your client considers most important.
By intimately knowing your own costs, you can figure out where to make savings without scrimping on the things your client considers important.
For example, if low cost is most important to your client, it would be reasonable to offer a lower price in exchange for the client taking on some of the “grunt work” like assembly, post-processing, finishing, and so forth. If you have ever purchased a product in kit form instead of fully assembled in order to save some money, than you already know what I’m talking about. In effect, as the service provider you accept less money from the client, but keep more of your own money or time in return.
How to Understand Your Time and Costs
In principle this is simple: record where your time goes, where money gets spent, and how much of each is used to create your product or perform a service. The details don’t need to be utterly complete. You only need enough to use as a basis for some reasonable decisions, and that is a very accessible goal.
If you know where your top three biggest time and money sinks are, you can focus your attention on those and not sweat the smaller stuff. To figure them out, use one of the following methods.
Do You Produce Things?
An accurate Bill of Materials is a good start, but doesn’t capture the time or costs involved in the process of turning parts into things. Breaking a product or service down into components, capturing the cost of those elements, and accounting for hidden costs is what will give an understanding of how much time and money actually goes into creating something. The math is simple; it’s more about capturing the right data.
Most Cost of Goods Sold (COGS) calculators don’t serve the needs of an individual very well, so I created a spreadsheet available on GitHub that shows how to break down a simple product to see how time and money are distributed across manufacturing, assembly, packaging, and shipping. I use a copy of it for my own projects and work, and I happen to think it’s pretty generally useful.
Do You Provide a Service?
[Stefan Hermann] of [CNC Kitchen] created an excellent spreadsheet to calculate and itemize the costs of 3D printing, and it also provides a nice pie chart of where time and money are spent. It can easily be adapted to any kind of service that uses a machine to create a physical deliverable, like laser cutting, CNC work, or anything else.
People who aren’t sure what more there could be to it besides the cost of materials and maybe power might be surprised to discover that setup time, post-job finishing, and hardware depreciation all add up very quickly. (Depreciation is important to include. All machines cost money and no machine lasts forever, so there is an inherent cost to operating one.)
[Stefan] has a video overview explaining his spreadsheet in more detail. Remember that the goal is to understand your own time and costs. Also note that the spreadsheet doesn’t address shipping, so don’t forget to account for those costs if your product is shipped.
Do You Provide a Service With No Physical Deliverable?
If your work doesn’t involve physical objects, the principles are still the same. It just means that you will be focused mainly on one type of currency: time. [Gerrit Coetzee] explained how to properly estimate project time, which is full of useful insights into how time actually gets spent on a project and will help you break a task down.
Again, it’s not necessary to break things down to the last detail. If you know where your top three highest expenditures are, you have what you need to proceed.
What’s Actually Important to Your Client?
Understanding your customer’s needs and values is critical. It will also help in figuring out what their budget is. Most clients won’t have a firm budget, or they won’t want to tell you what it is out of fear of tipping their hand in some way.
Happily, getting answers can be as simple as meeting and doing more listening than talking. Don’t be afraid to ask questions or request clarification. You are done when you feel confident that you have an answer to these questions:
What is it that they are trying to accomplish?
What exactly is it that they want you to do for them?
How urgently do they need it done?
Where will the difficulties be?
If you’ve had good communication, you should have a solid idea of what they value most, and why.
Putting it Together With Two Steps
Once you know your own costs and you understand what your client values most, you have what you need to find opportunities to reduce costs in a way that benefits everyone.
1. Always deliver on whatever the client considers most important.
No matter what, you have to give maximum delivery on whatever your client values most. Deliver the best results you can. No cutting corners here.
2. Save the cost-cutting for the things which are expensive for you, but less important to the client.
Out of the remaining elements of the job, the best targets are those that are all of the following:
Expensive for you to perform in terms of time or money (relative to other tasks)
Do not require your personal specialized skills or tools
Considered of lesser importance by the client
Tasks that are expensive for you but do not need to be done by you personally are your starting points. Moving them off your plate and onto the client’s is how to reduce costs in a way that doesn’t amount to simply charging less for the same amount of work.
Have the client provide data in a way that gives you a simplified toolchain or workflow. For example, if you accept .DXF files for laser cutting, have your client agree to send their designs pre-organized into sheet sizes that are convenient for you.
If you apply specialized tools or skills, have the client do the other work. For example, on circuit boards you might install surface mount components and program the microcontrollers, but the client can perform uncomplicated (but time-consuming) tasks like soldering through-hole components and wires.
Provide finished parts or modules, but let the client take care of the assembly or integration.
The client does post-processing tasks like sanding, painting, or other finishing touches.
The client agrees to provide raw materials in a format you can easily work with (in a way, have them do your purchasing, prep work, and delivery for you.)
It’s worth mentioning that the client should be able to actually perform whatever tasks are being negotiated. It’s no good having them agree to take on a task if you end up spending a week on the phone doing it for them anyway in the end.
If None of Those Applies
There are other, more creative ways to reduce costs without devaluing your own work:
Be sure to communicate where the biggest costs are coming from on your end. Can any of them can be substituted for cost-saving alternatives that still deliver what the client needs? They may not be aware of the options, and they may not have considered doing things a different way.
Share some of the client’s risk by making a portion of your fee dependent on project milestones or performance. Anything that can be measured can be the basis of a performance-based fee or bonus that can translate to a lower up-front cost, but balance out for you later.
Non-monetary benefits such as use of equipment, services, or space can also be negotiated to reduce fees. Does your client have or produce anything that you would find useful?
Remember that your value will be measured by how well you deliver on whatever the client considers most important. Delivering on that is what will get you invited back; it’s an important way to avoid failing as a contractor. It’s also a good way to get included in conversations that begin “who do you know who can…” which is an important way to find work as an engineering contractor.
For those of you looking to create and sell physical products, don’t forget the excellent tips we covered when we asked: Will It Sell?
Do you have your own experiences to share in finding ways to reduce costs without affecting delivery, or understanding your own costs better? Let us know in the comments.
In our first part on pointers, we covered the basics and common pitfalls of pointers in C. If we had to break it down into one sentence, the main principle of pointers is that they are simply data types storing a memory address, and as long as we make sure that we have enough memory allocated at that address, everything is going to be fine.
In this second part, we are going to continue with some more advanced pointer topics, including pointer arithmetic, pointers with another pointer as underlying data type, and the relationship between arrays and pointers. But first, there is one particular pointer we haven’t talked about yet.
The one proverbial exception to the rule that pointers are just memory addresses is the most (in)famous pointer of all: the NULL pointer. Commonly defined as preprocessor macro (void *) 0, we can assign NULL like any other pointer.
As a species, we’ve done a pretty good job at inventing some useful devices. But as clever as we think we are, given sufficient time, natural selection will beat us at our game at almost every turn. So it makes sense that many of our best inventions are inspired by nature and the myriad ways life finds to get DNA from one generation to the next.
Velcro is one such design cribbed from nature, and the story behind this useful mechanism is a perfect example that a prepared mind, good observation skills, and a heck of a lot of perseverance are what it takes to bring one of Mother Nature’s designs to market.
A friend of mine once suggested that there should be a support group for burned-out former hackerspace directors. We could have our own Village of the Damned at summer camps, where we’d sit moodily in the gathering twilight sipping our bourbon and Club Mate and decrying whatever misfortunes came to our space to leave such visible mental scars, or gazing hollow-eyed into the laser-tinged haze and moving gently to the pulse of the chiptune music. “See that’s Jenny over there, she don’t say much“. Hackerspace noir, where the only entry criterion is being crazy enough to stand for election to your space’s board.
There must be spaces somewhere that live in such perfect harmony, in which a happy membership support a board for whom everything falls into place. Maybe the makerspace in [Dr. Seuss]’s Whoville would have that kind of atmosphere, but the reality of life is that every group is made up of both Grinch and Who. Keeping a diverse group of people harmonious is a huge challenge, but that’s what hackerspaces are really about — the people make the space.
There are several defined periods in the gestation of a hackerspace, and at least from where I’m sitting they relate to its member count. Some spaces pass through them all as they grow, while others are lucky enough to reach an equilibrium and spare themselves some of the drama.
If you recognise yourselves in some of the following then you have my commiserations, while if your space hasn’t got there yet or has managed to dodge some of the bullets then consider yourselves lucky.