Software Developer
8 stories

Software Updates

4 Comments and 13 Shares
Everything is a cloud application; the ping times just vary a lot.
Read the whole story
7 days ago
Bucharest, Romania
Share this story
4 public comments
6 days ago
Funny, while looking at this very comic I noticed that a very recent update to Chrome (on Android) ruined the title-text feature. Now how do I roll this fucker back?
1 day ago
And FYI: you can go to chrome://flags and disable "revamped context menu" to see the full title text again
6 days ago
I'm sure Stallman would have something to say about this
6 days ago
ShareX > 12.0.0 removing the ability to use Greenshot to edit. Stuck on 12.0.0 forever now.
Plano, Texas
7 days ago
Everything is a cloud application; the ping times just vary a lot.
6 days ago
Sigh... Outlook 2010, how I miss your true dark mode, folding calendar, drag-drop support and smart search folders. In corporate culture, 'unwilling to lose' is not the same as 'allowed to keep'.
5 days ago
If it helps, true Dark Mode came back to Office in 2018/2019 (depending 365 or standalone).

Percent Milkfat

2 Comments and 6 Shares
"So what's dark energy?" "Cosmologists and the FDA are both trying very hard to find out."
Read the whole story
21 days ago
Bucharest, Romania
Share this story
2 public comments
26 days ago
Is that 27% by weight or volume?
26 days ago
"So what's dark energy?" "Cosmologists and the FDA are both trying very hard to find out."

Happy 10th birthday pandoc! - Google Groups

1 Share

Pandoc is ten today!  The first release, pandoc version 0.1,
was made public on August 10, 2006.
Metric                     0.1   current
---------------------- -------  --------
lines of Haskell code*    3420     34076
input formats                4        19
output formats               6        34
contributors                 1     > 150
size of manual             17k      140k
* including pandoc-types, but not testing code or
subsidiary libraries like texmath, highlighting-kate, or
Pandoc started out as a small practice project to mess
around with Haskell.  After a while it became capable enough
for me to use in my own work. I released it under an
open-source license because I used other people's
open-source software, and because there was no reason not
to.  But I didn't expect it would ever be used much by
anyone but me.
When I started working on pandoc, the Haskell ecosystem was
small.  There was no central database of packages, and no
cabal or stack tool for managing dependencies. I had to
write my own libraries for dealing with zip archives
(zip-archive) and highlighting syntax (highlighting-kate).
Things have come a long way since then.
Because I was just a beginner in Haskell when I began the
project, and key libraries like text didn't yet exist, there
are a number of things about the project's design that are
less than ideal.  If I were starting over, I'd use Text
everywhere instead of String.  I'd also use a lot more
newtypes, and I'd use free monads or type classes so that
all of the readers and writers could be used outside of IO.
I'd use a data structure that allowed attributes to be
attached uniformly to all elements.  I think we'll
ultimately need to make these changes to move forward, but
they're not simple changes to make in a 34k line code base.
Fortunately, more and more people are becoming familiar with
the pandoc code.  Over time the project has attracted many
excellent contributors.  To them we owe the ZimWiki writer
(Alex Ivkin), the TEI writer (Chris Forster), the InDesign
ICML writer (Maura Bieg), the FB2 writer (Sergey Astanin),
the Texinfo writer (Peter Wang), the org-mode writer
(Puneeth Chaganti and later Albert Krewinkel), the DokuWiki
writer (Clare Macrae), the Textile reader (Paul Rivier), the
Haddock reader (David Lazar), the org-mode reader (Albert
Krewinkel), the ODT reader (Martin Linnemann), the Twiki
reader (Alexander Sulfrian), the EPUB reader (Matthew
Pickering), and the docx reader (Jesse Rosenthal).  Andrea
Rossato was primarily responsible for pandoc's excellent
citation support, through his citeproc-hs project (which
formed the basis of pandoc-citeproc).  Matthew Pickering
dramatically improved math support and made many other
contributions to pandoc's architecture.  Mauro Bieg added
attributes to links and images, and (together with Andrew
Dunning) helped improve multi-language support.  Many others
have contributed important bug fixes and suggestions.  Some
of these contributors had never touched Haskell before they
worked on pandoc.
One might wonder whether it matters that pandoc is written
in Haskell.  Certainly it would have been possible to write a
program that does what pandoc does in any language.  But the
security provided by Haskell's type system has kept me sane
when I have needed to make major changes or do large-scale
refactoring.  I can make one very central change (say,
adding attributes to headers in the basic Pandoc document
model) and the compiler will direct me to everything else I
need to change.  When the program compiles again, I can feel
reasonably confident that I've modified all of the code that
was affected.  Purity also helps preserve sanity.  When a
writer defines a pure function from a Pandoc document to a
String, I can be confident that changes to that function
won't have side effects in other parts of the program.  I
doubt that, using a language like C or JavaScript, I would
have been able to manage an evolving code base this size in
my small scraps of free time without it turning into
unmaintainable spaghetti.
It has been a good ten years. Happy birthday pandoc, and
thanks to everyone who has helped to improve it.

Read the whole story
1187 days ago
Bucharest, Romania
Share this story

From first principles: Why I bet on Scala.js

1 Share

Three years ago, I downloaded the nascent Scala.js compiler and tried to use it on a toy project.

Since then, it has matured greatly: the compiler itself is rock-solid. It has a huge ecosystem of libraries. It has a vibrant community, been adopted by some of the largest commercial users of the Scala language, and is playing a key role in shaping evolution of the language. By any measure, it is a success, and I was one of the key people who evangelized it and built foundations for the open-source community and ecosystem that now exists.

However, three years ago in late 2013, when I first got involved in the project, things were different. The compiler was unstable, buggy, slow, and generated incredibly bloated, inefficient Javascript. No ecosystem, no libraries, no tools, nobody using it, no adoption in enterprise. Clearly, a lot of the things people now see as reasons to use Scala.js did not apply back then. So why did I put in the effort I did? This post will explore the reasons why.

Read the whole story
1188 days ago
Bucharest, Romania
Share this story

Java Annotated Monthly – August 2016

1 Share

This month’s Java Annotated Monthly is so much more than Java.  Not only do we take a look at what’s happening in the community and what’s the latest on upcoming versions, we have a chance to touch on news for Scala, Clojure, JRuby, Groovy and, of course, Kotlin. And in a slight departure from our usual technical content, we take a look at some news relevant to strengthening team skills with a focus on code reviews.


Community & Ecosystem

As mentioned briefly in last month’s Annotated Monthly, Oracle has countered claims of lack of interest in Java EE by announcing they’re rebooting it for the cloud. One of the alternative plans to move Java EE forward is discussed in more detail on the vJUG July podcast.

Touching on both the Java EE uncertainty and the Oracle/Google lawsuit, is this high-level view of state of the Java ecosystem. The conclusion, of course, is Java is (still) Not Dead. Which is fine, since we ignore Java is Dead articles anyway, but there are concerns around whether Java it can attract new developers.


One great route for beginner into Java is via Android, and Google has just launched a new programming course for beginners.

Java 10+

Oracle has plans to standardise JDK command line options with JEP 293.

Java 9

One of the features in Java 9 that has the potential to have a big impact on the way Java developers work is the Java REPL. But often overlooked is that the Streams API is getting some updates too, including a (much needed) way to end infinite streams. Remember you can download the latest build of Java SE 9 (we’re currently on build 129).

Java 8

As always, there’s some great stuff for understanding Java 8, like this presentation on understanding Stream performance, and some guidance on using Timezones. We published some Java 8 Top Tips with a focus on IntelliJ features (not surprisingly), and posted a complimentary article for Upsource focusing on code reviewing Java 8 code.

For non-version specific tips, there are some community-contributed productivity tips, useful JIT optimisation techniques, and seven of the best Java answers.

JVM Languages

Java continues to sit in one of the top spots in various language rankings, but its not the only player on the JVM.

Scala is a firm favourite, and big things are planned for it.

There’s a great primer on JRuby in this month’s Java Magazine. Ruby continues to be in the top 5 or 10 programming languages, and combined with the power of the JVM it’s a compelling option.

Clojure is established as a language which is really good for solving certain problems.  As with any language, there can be some frustration.

Kotlin too continues to evolve, and you can play a part in this evolution if you want.

It may feel like Groovy is less trendy than it once was, barely scraping into the top 20, but it still does some things really well. Spock is still a very compelling choice for testing, for reasons I’ve written about in the past.


While we’re on the subject of testing, JUnit 5 M2 is out to play with now.  Take a look at the new features, and remember that it’s supported in IntelliJ IDEA 2016.2.

Testing is not just about unit testing, understanding the different types of tests is fundamental to being able to test microservices effectively.

Code Reviews

Having mentioned code reviews earlier, now seems like a good time to share my backlog of articles on code review, code quality and related not-always-technical content. Performing a code review is about so much more than formatting or naming, or even catching bugs. To be a good reviewer, not only should we be able to identify code smells and stay up to date on coding guidelines, we should strive towards proficiency, which includes understanding the bigger picture, knowing how to give and receive feedback, trying different approaches to communicating taking into account the human cost of tech debt and knowing how to pick your battles.

Having the right tools makes the code review process so much easier. Gratuitous Promotion Alert: JetBrains makes Upsource for code reviews.


Java SE 8u101 (security update, recommended) and 8u102 (security plus bug fixes & enhancements) are your current latest versions.

Spring Boot 1.4 is now out. You’ll remember from last month’s Developer Productivity Report Spring Boot’s astonishing adoption rates. If you haven’t played with Spring Boot yet, now is a great time to try it out.

And Finally…

Last month our big news was the IntelliJ 2016.2 release. Since then we’ve had a chance to run webinars on the new features and the updated support for Spring, and posted about the JUnit 5 support.

Use this form to subscribe and receive fresh issues of Java Annotated Monthly by email
Read the whole story
1190 days ago
Bucharest, Romania
Share this story

Why don’t I get a file deletion confirmation warning from Explorer when I undo a copy?

1 Share

If you use Explorer to copy a file, and then press Ctrl+Z to undo the copy, and you had file deletion confirmation enabled, then Windows 7 would display a confirmation dialog to verify that you really want to delete the file. But Windows 8 no longer shows that confirmation dialog. A customer wanted to know why.

Overwhelming customer feedback indicated that even though it technically meant deleting a file, the confirmation dialog when undoing a copy was unnecessary. Undo operations in most programs do not prompt in general, not even if the Undo is potentially destructive (such as undoing a Paste operation). All you're doing in this case is deleting a copy of a file; the original is still there, so there's no data loss. And if you forgot where the original was, you can get the copy back by Redoing the operation.

Read the whole story
1194 days ago
Bucharest, Romania
Share this story
Next Page of Stories