|
Let me add to my previous comment.
There is this Coder Interview with Mark Rendle. I assume coder interviews are with programmers who somehow manage to attract the attention of the coding community and Codeproject.
Verbatim from that interview:
What new tools, languages or frameworks interest you?
All of them! I suffer from neophilic attention-deficit disorder. I really have a problem resisting the urge to try and learn everything at once, but I try to keep it down to one or two things at a time.
Right now I’m focusing on JavaScript, which is not new, but is definitely having a renaissance. There’s Node.js, of course, and some really exciting things happening in browser app development with frameworks like Knockout and Angular. I also prefer using HTML and JavaScript for the UI code for Windows 8 apps, although I still do the other bits (business logic, data access and so on) in C#.
Languages I’m interested in but not letting myself play with right now include Rust, Clojure, Go, Dart, Nemerle and C++11 (which has got so many new features it’s practically a new language).
Mark Rendle says he does, among other things, "consulting with a company looking to bring a big enterprise system up to date".
WWMRD when he is asked for advice by that consumer loan company which uses COBOL on an IBM mainframe that I mentioned in my previous post?
|
|
|
|
|
A good friend works in the insurance industry and we've discussed the ins and outs of updating old systems and business practices. It's actually very interesting stuff.
Typically, if the old systems work, they don't mess with them. There are still COBOL and FORTRAN guys out there who love the stuff and take pride in keeping these old systems going. Seriously. You should see the condescending email I get when I poke fun at their beloved old languages. Good on them.
Maybe over the years new services or data stores were built using whatever technology was right at the time. Business doesn't stand still. So then you've got to stitch those new bits and layers together.
The old systems maybe aren't so easy or fun for people to interact with easily. So more modern languages and frameworks are used to update the systems with capabilities and interfaces that suit today's business better. A few years ago that might have been a Windows app. More recently an internal web interface. Now maybe a secure, public, self-service site or mobile app.
The back end doesn't necessarily get rebuilt, but the ways they get used and accessed do get updated over time, and I think that's where new technologies come into play. Sure, the old FORTRAN-based system works, but would you build new capabilities today with FORTRAN?
Also, people who enjoy what they do often enjoy learning new things about what they do and what's happening in their profession. It's called keeping up to date and staying sharp with new challenges. A real expert might know about all sorts of the latest tools, but would presumably recommend the solution most appropriate to the problem.
In other word, learning about "Rust, Clojure, Go, Dart, Nemerle and C++11" doesn't necessarily mean using them indiscriminately.
Director of Content Development, The Code Project
|
|
|
|
|
You've probably seen Jeff Blankenburg's "31 Days..." article series before, covering Silverlight, Windows Phone and more. This time Jeff is teaming up with Clark Sells to bring you 31 Days of Windows 8. Watch this space for details, resources and more. 'Tis the season for mobile coding.
|
|
|
|
|
I’ve been using Windows Phone 8 for a while now. Here are a few of my favorite features that didn’t get announced yesterday. One user shares his favorite unsung WP8 features.
|
|
|
|
|
Not sure why this was univoted. Countered.
I think computer viruses should count as life. I think it says something about human nature that the only form of life we have created so far is purely destructive. We've created life in our own image.
Stephen Hawking
|
|
|
|
|
"This site is currently not available..."
Looks like Azure doesn't like WP8.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
What happens if you give a thousand Motorola Zoom tablet PCs to Ethiopian kids who have never even seen a printed word? Within five months, they'll start teaching themselves English while circumventing the security on your OS to customize settings and activate disabled hardware. Whoa. Inspiring kids to go out and learn by teaching themselves.
|
|
|
|
|
Terrence Dorsey wrote: never even seen a printed word?
Personally I feel it is important to be able to read books before using computers. Like learning to walk before you run.
=====
\ | /
\|/
|
|-----|
| |
|_ |
_) | /
_) __/_
_) ____
| /|
| / |
| |
|-----|
|
=====
===
=
|
|
|
|
|
How about eBooks?
- Life in the fast lane is only fun if you live in a country with no speed limits.
- Of all the things I have lost, it is my mind that I miss the most.
- I vaguely remember having a good memory...
|
|
|
|
|
One of the comments on the article says:
(Sugata Mitra has been doing this for years in India in his "Hole in the Wall" project.}
The details: A wall separates a slum from from an office park in New Delhi. Sugata Mitra put a monitor in a hole in the wall and put a mouse and keyboard. A videocamera high up on the wall or a tree recorded what was happening. The slum kids saw the computer and keyboard and started playing with it and taught themselves Word and whatever other software was installed on the PC.
Been there, done that!
|
|
|
|
|
Even though the new phone has completely changed the underlying operation system to use the same WinRT sub-system that powers Windows 8, the basics of how to build apps on the phone is primarily the same. This means if you have experience building XAML-based projects, you should be right at home with Windows Phone 8. A lot has been talked about the new Operating System and it's new tile layout and other features. But what I want to explain are the new developer features that I am excited about. What are you excited about in WP8?
|
|
|
|
|
|
|
Excellent article. Unfortunate he turned off comments; a blog without comments isn't a blog.
But a great article nonetheless. He argues convincingly that because System.String is so easy to use, people end up building new strings all the time, allocating memory and increasing pressure on the garbage collector, and, contrary to popular belief, this is not free.
I'm reminded of this recent article: Why I Program in Erlang[^]. The author makes the case that Erlang's non-obvious implementation of strings is the right one:
Or take string concatenation. If you pop open the implementation of string concatenation in Perl, Ruby, or JavaScript, you are certain to find an if statement, a realloc, and a memcpy. That is, when you concatenate two strings, the first string is grown to make room for the second, and then the second is copied into the first. This approach has worked for decades and is the “obvious” thing to do. Erlang's approach is non-obvious, and, I believe, correct. In the usual case, Erlang does not use a contiguous chunk of memory to represent a sequence of bytes. Instead, it something called an “I/O list” — a nested list of non-contiguous chunks of memory. The result is that concatenating two strings (I/O lists) takes O(1) time in Erlang, compared O(N) time in other languages. This is why template rendering in Ruby, Python, etc. is slow, but very fast in Erlang.
Duffy's .NET strings article got me thinking about more efficient ways to represent a string. Obviously we have StringBuilder. Would passing around lazy IEnumerable<char> be any different?
Or some amplified type from there?
Interesting thought exercise. But in my day-to-day work, I'm happy just using System.String.
|
|
|
|
|
Judah Himango wrote: a nested list of non-contiguous chunks of memory
Judah Himango wrote: The result is that concatenating two strings (I/O lists) takes O(1) time in Erlang, compared O(N) time in other languages
Sounds like a linked list of strings (or tree), which is how I implemented StringBuilder+ (see my articles if you are curious). That's not good for some things though, such as doing a substring operation (you'd have to scan through the linked list to find the one that contains the section of the string you are trying to substring, which turns an O(1) operation into an O(N) operation). There are some optimizations that can be made, but using a linked list isn't the ultimate solution.
|
|
|
|
|
AspDotNetDev wrote: you'd have to scan through the linked list to find the one that contains the section of the string you are trying to substring, which turns an O(1) operation into an O(N) operation That's why rope[^] exists. But I don't like that one too much either - the nodes are too small compared to the size of a cache line. I tried to make it more B-tree-like, but it didn't quite fit somehow. Someone else could probably figure that out.
|
|
|
|
|
A good read - thanks, Dave!
/ravi
|
|
|
|
|
Beware the code that doesn't work!
string str = ...;
int lastIndex = 0;
int commaIndex;
while ((commaIndex = str.IndexOf(',', commaIndex)) != -1) {
Process(substr, lastIndex, commaIndex);
lastIndex = commaIndex + 1;
}
- The string passed to the
Process method should be str , not substr ; - By passing
commaIndex to the IndexOf function, this code would enter an infinite loop, if it would compile.
(It actually generates a "use of unassigned local variable" compiler error.) - If you change it to
lastIndex , it will miss the last item in the string.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
The code may be bugged, but the discussion was sound.
|
|
|
|
|
Yes, I agree the discussion is sound; I was just pointing out that it's harder to write correct code without using the built-in functions.
I've just finished throwing together a struct to cover the common substring operations, and I've reached 500 LoC (excluding comments).
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Notices will be sent out to developers of up to 100 mobile apps that are not compliant with California privacy law, starting with those who have the most popular apps available on mobile platforms, the office of the state's attorney general Kamala D. Harris said Tuesday. ITworld]
|
|
|
|
|
That will be a real impact on the small developer. $2500 penalty each time the app is downloaded. So much for making a profit/
|
|
|
|
|
Intel researchers are working on a 48-core processor for smartphones and tablets, but it could be five to 10 years before it hits the market. "If we're going to have this technology in five to 10 years, we could finally do things that take way too much processing power today," said Patrick Moorhead, an analyst with Moor Insights and Strategy. "This could really open up our concept of what is a computer... The phone would be smart enough to not just be a computer but it could be my computer." Meanwhile, fashion designers are researching pants with fan-cooled phone pockets.
|
|
|
|
|
To effectively use multiple cores, you need to write the software. That means the the current generation of languages such as C++, C#, Java really are not designed to handle all these cores. Maybe the functional languages can do better. Of course I guess the compiler can do the job, but so far that has been difficult.
|
|
|
|
|
Clifford Nelson wrote: To effectively use multiple cores, you need to write the software. That means the the current generation of languages such as C++, C#, Java really are not designed to handle all these cores.
Are you referring to Processor Affinity?[^]
dev
|
|
|
|