What programming language are gas powered water heaters written in and IDE or Framework do they use? - helper

I just need to know for an assignment and I can't find anything about this specific detail.
I searched google I mostly got a bunch of "what the error codes mean" and how to use the buttons (on the actual tank) and what-not to "program" the heater yourself at home.

Related

Ex Commodore 64 programmer wants to get back into programming- any suggestions?

When I was a kid I wrote hundreds of programs in BASIC but then as I got older I got out of it (when I discovered girls). Now I want to get back into it again and I don't want to let my prior knowledge & experience go to waste - is there a modern language that is at least somewhat similar? Every time I try to search I get pushed toward Visual BASIC but I would rather learn a modern language that's more widely used. Any suggestions? Thank you in advance!
Start from scratch.
Programming in a modern language (Object or Functional) is different enough from programming basic on a C64 that you will probably carry over more bad habits than good ones.
I would pick a language you like the look and feel of, but mostly think of what you want to do:
Java is probably the "safe" bet, especially if you want to start a career in programming or if you want to work on Android development.
If you want to program for Windows / Microsoft devices then C#
If you want to want to write for the Mac or iOs devices then Swift.
If you like the idea of functional programming then Clojure is a good bet.
If you want to do web development then Javascript and maybe Ruby
If you want to work on things like machine learning or statistics then Python to start and then maybe R
If you want to be cutting edge and maybe work on some DevOps kind of things I would suggest Go
With all of these I would suggest also learning some flavor of SQL
Languages I personally would generally avoid either because they are overly complex or tend to teach bad programming practices:
Objective C, C++, Perl, Lisp, Ruby
If you want to explore some other more esoteric languages I recommend two books:
Seven Languages in Seven Weeks
Seven More Languages in Seven Weeks
Keep in mind, that just because you might start from scratch it doesn't mean your prior experience goes to waste, it just may not be as useful as you may like.
I was in this exact position about eight years ago; whilst I could do some assembly and BASIC, these skills were (and are) generally not required in a modern context. So I went to study a Foundation Degree in Enterprise Computing in the UK (MMU affiliated) because this had Java. Due to a Government change in 2010, that cut funding to Higher Education, the 3rd year of that course was scrapped for all affiliated establishments, so I spent a year at the University of Derby on its Games Programming degree, which was all programming in C, C++, MIPs assembly, C# and Java.
I found the following useful:
6502 is good if you want to learn more modern assembly like MIPs; Z80 is probably good for x86/64, though that is an educated guess rather than fact (I use both 65x and Z80 in personal projects today mixed with C when I get the chance);
C is the most beautiful language that I've ever used. I did C programming on Windows and for the PSP. I've since made Sinclair ZX81 games with C and done a bit of experimental programming for the Commodore 64 and Sinclair ZX Spectrum. I love C;
Object Orientated programming took me a while for me to get my head around. At first, I thought an object was simply a container for computer RAM. Maybe this is a good base to think about it, maybe not;
Going to University is a good thing because you will always learn something if you apply yourself;
8-bit BASIC can still teach you a thing or two if you can transpose your logic without bad practises that 8-bit BASIC encourages;
I had most difficulty understanding databases, mostly the relational algebra side but also all other database stuff. I finally got my head around M:M relationships sometime last year after years of looking at it. If you struggle with SQL/Database stuff, don't give up;
I now work at a PHP Web Application developer with bespoke OO and Procedural frameworks. I have also worked with simpler off-the-shelf solutions such as Magento, CodeIgniter, Joomla! and ExpressionEngine (built on CodeIgniter).

Hello world for spoken NLP interaction (like Siri)?

If I have zero experience developing spoken NLP interaction, what is the easiest way for me to make a Hello World, and begin experimenting from there?
Any platforms and programming languages and APIs are relevant here, as long as they give me the most basic equivalent of Hello World AND are flexible enough that I could potentially play around for a few hours in that environment using various public REST APIs and glueing strings/regex together and get some useful demo apps out of it.
Please offer kind suggestions to improve this question if it's not clear enough, since it's probably a topic on a lot of programmers' minds and something which is not yet mainstream.
If you want to play with building blocks, you can use:
either SphinxCMU or the Google's voice recognition API (used by Chrome) to turn the user's voice into text
the Wit API to extract meaning (the user intent/question) from text
and then our own module to build an answer
Start looking on existing projects like this one:
Pi-Voice
read the code and analyze what they are doing. Those are toys anyway since technology behind Siri is quite complex
To get a deep understanding of the technology read the papers from the CALO project which was a Siri base:
Calo Project Website

What should I aim to learn over the next 8 months?

I am currently taking a year off between high school and college (computer science).
I'm pretty good with Visual basic (unfortunately, this is the only language my school offered in High School). I've dabbled in some PHP, and have pretty good knowledge of broad programming principals and concepts.
I'm more interested in web programming then conventional, but I'd like to do both.
What are some good languages I should pick up over this next eight months, and what are some good, (tough but attainable) goals I should set for myself in this time frame?
Thanks!
If it's web programming you're after, you have three top contenders at the moment for web development (in no particular order):
ASP.Net
Ruby on Rails
PHP
If you've been schooled on VB, the ASP.Net might offer the most familiar development environment, but all three are very marketable.
As far as personal development and goal-setting is concerned and given you only have 8 months to work with, I'd say you want to get intimate with the following concepts and how the work in practice:
unit testing
CSS
JavaScript
See if you can write your first practical application. This will set you up incredibly well for future employment if you can say you actually delivered something (grades are good, but delivery and experience is better).
If you really want to aim high, see if you can secure a casual part-time job at a software shop.
Ruby on Rails is pretty cool and easy to learn esp. if you are after web development.
AJAX can help you with giving your web page some cool features.
I would suggest you to get the book : Agile Development with Ruby on Rails. It will help you get started.
You may want to focus on the language that the college you will be attending will be teaching their low-level classes in. this way, you can have a bit of a head start on the class, giving you more time for your other classes.
I think most colleges currently start off in Java. You should be able to find that out with a bit of research.
If it is good grades and ease of programming in college you seek, learn the language of choice of the school you plan on attending. Most schools stick with one primary language for the introductory classes as many universities teach conceptual programming. I think the most common languages right now for universities to teach are Java and C++ as both offer good, cross-platform introductions into object-oriented concepts such as polymorphism and aggregation.
If you are attending a technical college or community college for an associates degree, those are normally more applied and teach "how to program a website with PHP" or similar. In that case, you may focus on the fundamentals of the class such as how do web application work, learn about compilers and how they work, etc. Things they won't teach you but are valuable to know in the real world.
If you want to parlay this knowledge into a job writing web applications, you must consider where you may work. Different industries have accepted different languages. Many young businesses and industries accept newer languages such as PHP, Ruby, etc. Some shops are purely Windows (there are a lot) and do much of their web apps in .NET. Then there are still a number of middleware-based solutions such as WebSphere, WebLogic, JBoss, etc. There are also some in-between things that are still web focused such as PeopleTools programming. You may also consider learning about web application scaling.
If I were you, I would focus on a primary skill you already posess, and nurture that so that you become highly skilled. You can't master everything, but being an expert in something makes you desirable.
Hope this helps.
Read some books.
The Pragmatic Programmer. From Journeyman to Master, Thomas, Hunt - to make your brain think in a pragmatic way, not PHP or other technology way. PHP or Ruby will die, the knowledge from this book won't as it's universal.
Apprenticeship Patterns, Hoover, Oshineye - to plan your career, get to know what's important, what to avoid and what to do to make yourself better.
Personally, I'd start looking at data structures and algorithms, they are the building blocks of good computer science knowledge, as most of them will make use of the majority of features of any given programming language, and as you learn to implement these in the chosen language, you'll get to grips with the programming language.
I heartily agree with Muad'Dib. Look at what language the course is using, and start using that language. If it's C++, then you can get utilities like Cygwin for Windows where you can develop in a virtual linux box without having to re-wipe your computer.
If it's Visual Studio stuff, then there's the MSDN Express stuff that's free from Microsoft, although it's a bit of a download.
Also, the Pragmatic Programmer is a MUST READ! It's full of great advice, and you're at the very best stage to start picking up good habits, start doing that now, and you'll go far in the programming world.
Hope that helps.

Real world Haskell programming [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Having been an imperative developer for some years now, I had never had the urge to learn functional programming.
A couple months ago at last I decided to learn Haskell. It's quite a cool language, but I'm puzzled about how an event driven real app would be programmed in such a language. Do you know of a good tutorial about it?
Note: When I say "real app" I'm not talking of a real world, production ready app. I just mean a little sample app, just to get the grasp of it. I think something like a simplified version of the windows caculator would be great, and then perhaps something a bit more complex.
When you say "real world" examples you are presumably thinking about problems that are inherently sequential or stateful or do lots of I/O, right?
So, how about games?
Frag is a Quake clone, implemented for an undergraduate thesis (Functional Programming and 3D Games, Mun Hon Cheong, 2005). Here's a video of it in action.
Super Monao Bros. (formerly known as Super Nario Bros.) is, well, you can probably figure out which game it is a clone of. (This is the author's English language weblog.)
Purely Functional Retrogames is a 4-part series of blog articles about how to write games in a purely functional language, explained using Pacman as the example. (Part 2, Part 3, Part 4.)
Or, what about an X Window Manager, an extensible Emacs clone text editor or an IDE?
Then, there is the book, which even has your question already in the title: Real World Haskell and which is also available for free!
Another thing you might want to look at, is Functional Reactive Programming. (It is used in Frag, for example.) The interesting thing about FRP is that it allows you to look at the problem of, say, GUI programming from a very different angle. If you read the GUI chapter in the RWH book, you will see that it talks about how you can write a GUI application just like in C, only better. FRP OTOH allows you to write it in a totally different way that wouldn't even be possible in C.
A lot of times (I'm not saying that this is the case in your question, but it is a recurring pattern) when someone says "but can Haskell be used in the real world", what they are really saying is "I know how to do this in C, and in Haskell I cannot do it in exactly the same way, therefore it must be impossible in Haskell, therefore Haskell is not ready for the real world". But what they are missing out on, is that there might be a totally different and much better way to solve the problem. (It's like saying "Erlang doesn't have threads, therefore it cannot possibly be used to implement concurrent systems.") And FRP is just one example.
For a lightning talk today I have assembled this list of show-case Haskell applications, deliberately excluding anything that only targets programmers:
darcs (since 2002, 35 000 loc): Distributed
version control system with an innovative focus on changes instead
of states.
xmonad (since 2007, 30000 loc): Well known
tiling window manager with a huge library of layout and other
plugins. Made it into the list despite its configuration file being
a Haskell file.
hledger (since 2007, 9000 loc): Text-file
based double-ledger accounting tool, a clone of
ledger.
Raincat (since 2008, 2000 loc):
Platform game with a cat that does not want to get wet.
arbtt (since 2009, 2000 loc): My
automatic rule-based time tracker. Made it into the list as a
shameless plug; probably not that popular. It has now a proper web
page contributed by Waldir Pimenta.
detexify (since 2010, 500 loc): The
back end of the very useful LaTeX character command finder is
written in Haskell.
git-annex (since 2010, 28 000
loc): Manages your files and their location, a mixture of dropbox
and git. Written by famous Joey Hess, who made a living from it via
kickstarter
He is currently running a second round of
funding!
Nikki and the Robots (since 2010, 18 000
loc): Platform game with Nikki and, well, his robots. It was
produced as a commercial independent game and sold via a
pay-what-you-like scheme, but the company unfortunately closed down.
hoodle (since 2011, 13 000 loc): A
note-taking and PDF annotation software like
xournal.
Chordify (since 2012, ? loc): Analyses
music, e.g. from a YouTube video, and calculates the corresponding
guitar chords. Closed software, but supposedly written in Haskell.
(Also featured on my blog, and on the slides of the talk, with nice representative pictures of each program.)
xmonad is event driven (literally). It has a listener loop that wakes up on events, modifying an internal state modelling the X server, which is then rendered to the screen.
http://xmonad.org
I once found this irc bot written in haskell:
http://www.haskell.org/haskellwiki/Roll_your_own_IRC_bot
Here are some links as you requested.
This one explains a lot of things that doesn't 'make sense' to an imperative programmer about Haskell
Haskell Tutorial for C Programmers
This one is a very good easy to follow tutorial
Learn You a Haskell for Great Good
Raytracer written in Haskell
Haskell Raytracer
You can download Glasgow Haskell Compiler from here.
GHC
you should check out Real World Haskell. The book is freely available and shows how Haskell can be applied to real world problems. I wouldn't call it a tutorial, tho, as it is much more comprehensive.
Check out functional reactive programming.

Non-English domain naming issues in programming

Most programming code, I imagine is written in English. But I'm curious how people are handling the issue of naming herein. A lot of programming is done within some bussiness domain, usually with well established terms for certain procedures, items.
I'm from Denmark for instance, and something I work a lot with has a term called "indblikskode", which sort of translates to "insight code". So, do I use the line "string indblikskode = ..." in the C# code for some web service related to this? Or do I try to use a translation, such as "insightcode"? The bussiness I'm in isn't even consistent in its language, for instance using the term "organisatorisk enhed" (organizatorical unit), but just as often using the abbreviation "OU", which is obviously abbreviated from the English.
How do other people handle this naming issue, while keeping consistent, and sane (in everything from simple variable names in your code, to database tables, to server names)?
Duplicates:
Should identifiers and comments be always in English or in the native language of the application and developers?
Do you use another language instead of English?
I can only speak for myself, but I always translate terms into English when naming classes and variables, and it's one of our unwritten best coding practices to do so as well. You never know when you might need to hand off development to cheaper labour abroad or the expert expat consultant in town.
The problem with non-English naming of classes and functions is, that you invariably going to end up with macaronic pidgin. Keywords are in English, naming conventions (like for example getters/setters) are also English, same for standard names for design patterns.
You're going to end up with stuff like:
OrganisatoriskEnhedFactory::getInstance()->getIndblikskode();
See my question and answer here.
Basically it depends on your organization and the application. If your company, developers and customers all speak the same native language and you expect it to stay that way, then it would be extremely counter-productive to have everyone become a part-time translator as well. Considerable productivity loss for a purely hypothetical future advantage. YAGNI.
If it's a large international company, or if there are concrete plans to expand internationally or have some work done offshore, it's a different matter, of course.
Having worked in Switzerland (German side ie Zurich) and lived in Germany for a time I can tell you that I've yet to see an environment where the code isn't in English. Sure the application may well be in German (but many professional environemtns are English-speaking anyway) but the code (I've seen) is pretty much all English.
It's hard to write code in other languages. For one thing, the APIs are (nearly) all in English. Java uses JavaBeans naming for example so you have to use set and get anyway and "getGeburtstag" just doesn't have quite the same ring to it as "getDateOfBirth".
Other countries may vary for this has been my experience from the Germanic countries.
We're usually using established English terms (our business domain usually has English terms), but if I can't figure out any suitable term, I could as well use Finnish. Heck, even our comments in code are in mixed languages...
Of course the sensible approach depends largely on whether the source code will ever be used outside the building. In a small shop it's not such a big deal.
I'm working in a company in Austria (so we're talking German) and we are programming in English (variable names, domain objects, GUIs). Makes it a bit more cumbersome, because you have to find the English translations and you have to translate the GUI before releasing the program. I'm not really sure if all the names are really correct.
In contrast in the former company I was working for programmed strictly in German. This was pretty nice (altough German words tend to be longer than English words). After some years the company wanted to use the same program in the USA, so English-speaking programers had to use the same codebase. after this everything got pretty inconsistent- variables, database fields.. in both languages (the English speaking team members didn't talk German).
My experience is that it is easier to handle internationalization in the early beginning (you are forced to do it when you write the program in English) of an application, because it is no big fun localizing a 10000 LOC application. The advantage of writing in another language is that you see instantly what is localized and what is not - altough it's work you have to take in account for that.
To the untranslatable words: we hadn't expierienced that yet - altough it was some work finding the English phrase for "intra-community deliveries" (that's an EU thing). But if that would happen I'm pretty sure we would use the German word.
I live and work in Germany but write English code only. It makes things easier. You can post your code on the net if you want to ask questions or want to publish tutorials about your work.
Also the code looks more "professional" for me.
I also live in and work in Germany for now and we mostly use English except for some old comments in German. I think non-English comments are generally very bad idea since you'll have to spend time trying to understand it (and understand correctly). Although both German and English are not my native languages, code written in anything other than English seems to be bizarre.
You'll never know who would be working on your code the next day. So you should use the universal IT language.
P.S. Since I do not like non-English languages in my development environment, I made a local administrator quite angry when I refused that my PC be installed with German Windows, German Office and German Visual Studio. It took many hours to download the English versions just for me.
Though I think it is good one day to install a language pack or just a different copy of the same software just to learn the terminology. SQL Management Studio in French makes me really excited, just as when I tried to switch Skype to Spanish.

Resources